1

Facebook の共有機能を Android アプリに実装する必要があります。私のシナリオは、起動画面で作成された facebook オブジェクトを他のすべてのアクティビティの中で使用できるようにする必要があるということです。私はすでにSOの関連する質問をチェックインしており、以下のリンクを見つけました。今、私は推測していますが、それらのどれが実装するのに理想的な方法です。これらの方法についての見解を教えてください。独自のアプローチがある場合はお知らせください。

Android アクティビティ全体でグローバル facebook オブジェクトを共有する

Facebook android:アクティビティ間でfacebookオブジェクトを渡す

Android: アクティビティ間で Facebook セッションを渡す

複数のアクティビティからの Facebook ウォール投稿 上記の回答で

最初のソリューションでは、アプリケーション コンテキスト内で facebook オブジェクトを作成し、アプリケーション全体で共有します。

public class GlobalVars extends Application {

public static final String APP_ID = "123456789";    
public Facebook facebook = new Facebook(APP_ID);

}

2 番目のソリューションでは、sharedpreference の使用について説明しています。有効な facebook セッションを作成した後、それは sharedpreferences に保存され、必要に応じて各アクティビティに復元されます。

SharedPreferences prefs = getApplicationContext().getSharedPreferences("facebook",MODE_PRIVATE);
String access_token = prefs.getString("access_token", null);
long expires = prefs.getLong("access_expires", 0);
if(access_token != null) {
facebook.setAccessToken(access_token);
}
if(expires != 0) {
facebook.setAccessExpires(expires);
}

3 番目のソリューションは、パーセル化可能な実装の使用を示しています。

public void writeToParcel(Parcel out, int flags) {
out.writeInt(mData);

}

4 番目の解決策は、静的な Facebook オブジェクトを含むクラスを作成し、すべてのアクティビティから同じものを使用しようとすることです。

Class Utiltiy {
public static Facebook mFacebook;

public static void initialize() {
   mFacebook = new Facebook(app_id);
}
}

Utility.mFacebook.request(....).

投稿全体をご覧いただきありがとうございます。適切なアプローチを提案してください。

4

1 に答える 1

1

Facebook の認証情報をAndroid Account Managerに保存する方法はもう 1 つあります。ユーザーが Facebook アプリをインストールし、すでにログインしている場合は、アカウント マネージャーから資格情報を取得できます。また、この方法により、ユーザーは資格情報を定義するための中心点 (設定 -> アカウント) を利用できます。そこからカスタマイズしたり、削除したりすることもできます。

于 2012-07-08T08:37:07.347 に答える