我需要在我的 android 应用程序中实现 facebook 的分享功能。我的情况是我必须能够在所有其他活动中使用在启动屏幕中创建的 facebook 对象。我已经检查了 SO 中的相关问题并找到了下面提到的链接。现在我在猜测,其中哪一种是理想的实现方式。请让我知道您对这些方法的看法,或者如果您有自己的方法,请告诉我。
跨 Android 活动共享一个全局 facebook 对象
Facebook android:在活动之间传递 facebook 对象
来自多个活动的 Facebook 墙贴 在上面提到的答案中
第一个解决方案处理在应用程序上下文中创建 facebook 对象并在应用程序之间共享:
public class GlobalVars extends Application {
public static final String APP_ID = "123456789";
public Facebook facebook = new Facebook(APP_ID);
}
第二个解决方案说明了共享首选项的使用。创建有效的 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);
}
第三个解决方案说明了使用 parcelable 实现。
public void writeToParcel(Parcel out, int flags) {
out.writeInt(mData);
}
第四种解决方案是尝试创建一个包含静态 Facebook 对象的类,并尝试在所有活动中使用相同的对象。
Class Utiltiy {
public static Facebook mFacebook;
public static void initialize() {
mFacebook = new Facebook(app_id);
}
}
Utility.mFacebook.request(....).
感谢您浏览整个帖子。请提出合适的方法。