現在、私のセッションは常に null です。バンドルが null にならないとします。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash_scene);
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
RelativeLayout rLayout = (RelativeLayout) findViewById(R.id.splashbg);
rLayout.setBackgroundResource(R.drawable.default_bg);
Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);
Session session = Session.getActiveSession();
if (session == null) {
if (session == null) {
session = new Session(this);
}
Session.setActiveSession(session);
}
session = Session.getActiveSession();
if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED)) {
session.openForRead(new Session.OpenRequest(SplashScene.this)
.setCallback(statusCallback));
} else {
updateView();
}
}
@Override
public void onBackPressed() {
// disable back button by overriding it
}
@Override
public void onStart() {
super.onStart();
Session.getActiveSession().addCallback(statusCallback);
}
@Override
public void onStop() {
super.onStop();
Session.getActiveSession().removeCallback(statusCallback);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode,
resultCode, data);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
Session session = Session.getActiveSession();
Session.saveSession(session, outState);
}
private class SessionStatusCallback implements Session.StatusCallback {
@Override
public void call(Session session, SessionState state,
Exception exception) {
if (session.isOpened()) {
GlobalFunction.token = session.getAccessToken();
IsExistMember checkmember = new IsExistMember();
checkmember.execute();
}
}
}
private void updateView() {
Session session = Session.getActiveSession();
if (!session.isOpened() && !session.isClosed()
&& session.getState() != SessionState.OPENING) {
OpenRequest open = new OpenRequest(this)
.setCallback(statusCallback);
List<String> permission = new ArrayList<String>();
permission.add("email");
open.setPermissions(permission);
session.openForRead(open.setCallback(statusCallback));
} else {
Session.openActiveSession(this, true, statusCallback);
// Intent intent = new Intent(SplashScene.this, WelcomeScene.class);
// startActivity(intent);
// finish();
}
}
セッションを電話に保持するにはどうすればよいですか。次回このアプリを実行するときに、新しいセッションを作成する必要はありません。
この でセッションをチェックしていましたActivity
。存在する場合は続行し、そうでない場合は他のアクティビティに移動して facebook でサインインし、バンドルを電話に保存します。
チュートリアルに基づいて、すべてを で行うように教えられましたActivity
が、別の で個別に行いたいですActivity
。
みたいなsharedpreference
のがありますが、iOSと同じappdelegate
でしょうか?