我試圖在android上創建一個facebook應用程序,我正在使用android facebook-sdk
。 我想要了解的例子是這樣的一個: https://github.com/facebook/facebook-android-sdk/tree/master/examples/streamandroid facebook應用程序
有東西,我不明白這裏,如果ü可以幫助我一點點的將是巨大的。
在主Activity
某一點做這樣的事情:
Dispatcher dispatcher = new Dispatcher(this);
dispatcher.addHandler("login", LoginHandler.class);
dispatcher.addHandler("stream", StreamHandler.class);
dispatcher.addHandler("logout", LogoutHandler.class);
Session session = Session.restore(this);
if (session != null) {
dispatcher.runHandler("stream");
} else {
dispatcher.runHandler("login");
}
}
我不明白的是這Session.restore(this)
的工作方式。
的restore
方法是這樣的:
public static Session restore(Context context) {
if (singleton != null) {
if (singleton.getFb().isSessionValid()) {
return singleton;
} else {
return null;
}
}
SharedPreferences prefs =
context.getSharedPreferences(KEY, Context.MODE_PRIVATE);
String appId = prefs.getString(APP_ID, null);
if (appId == null) {
return null;
}
Facebook fb = new Facebook(appId);
fb.setAccessToken(prefs.getString(TOKEN, null));
fb.setAccessExpires(prefs.getLong(EXPIRES, 0));
String uid = prefs.getString(UID, null);
String name = prefs.getString(NAME, null);
if (!fb.isSessionValid() || uid == null || name == null) {
return null;
}
Session session = new Session(fb, uid, name);
singleton = session;
return session;
}
如果有人能解釋我是什麼SharedPreferences
整個目的,什麼是儲存在那裏,爲什麼是這兩條線需要:
fb.setAccessToken(prefs.getString(TOKEN, null));
fb.setAccessExpires(prefs.getLong(EXPIRES, 0));
因此,當我按下allow時,我還保存在SharedPreferences中,我將用於還原會話的TOKEN?還有誰是UID和NAME? – adrian
當您按下允許您將該令牌保存到'SharedPreferences'以備將來使用時,每當您每次在任何'Activity'中創建一個'''對象'對象時,每次調用'restore()'方法都會確保該會話有效。 「UID」和「NAME」是用戶的Facebook ID和Facebook名稱。 –