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