1

我需要在我的android应用中实现Facebook的共享功能。我的场景是我必须能够使用在所有其他活动中在启动屏幕中创建的facebook对象。我已经检查了SO &中发现的下面提到的链接中的相关问题。现在我猜测,他们中的哪一个是实施的理想方式。请让我知道您对这些方法的看法,或者如果您有自己的方法,请告诉我。Android:在各种活动中共享Facebook会话对象

Sharing a global facebook object across Android activities

Facebook android: passing facebook object between activities

Android: Passing a Facebook session across activities

Facebook wall post from multiple Activities 在上述

首先解优惠提到与创建应用程序上下文内facebook的对象和在应用程序共享的答案:

public class GlobalVars extends Application { 

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

}

第二种解决国家使用sharedprefernces的。在创建有效的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(....). 

感谢您阅读整篇文章。请建议一个合适的方法。

回答

1

Android Account Manager中还有另一种存储Facebook凭证的方法。 如果用户安装了Facebook应用并已经登录,您可以从客户经理获取他的凭证。这种方法为用户提供了一个中心点(设置 - >帐户)来定义其凭证。从那里你可以定制它们甚至删除它们。

+0

感谢您的快速回复。我非常感谢你提出了一种提取证书的新方法。但我想它很复杂。我在我的应用程序中使用了Facebook SDK,因此它可以为我们处理获取令牌。 – vijaykumarg 2012-07-08 11:16:46