Я пытаюсь создать на Android приложение для Facebook, и я использую Android facebook-sdk
.Вот пример, который я пытаюсь понять: https://github.com/facebook/facebook-android-sdk/tree/master/examples/stream
Здесь есть кое-что, чего я не понимаю, если бы вы могли мне немного помочь, это было бы здорово.
В какой-то момент в основном 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));