1

私のアプリでは、ユーザーは最初にロゴとログイン/登録ボタンのある画面を表示します。ログイン画面と登録画面があり、その後、ユーザーはホーム画面に移動します。

ログイン/登録後、サインアウトするまで、最初の画面やログイン/サインアップ画面が表示されないようにしたい。

これは私が試したことです:

public class MainActivity extends Activity {
private boolean isUserLoggedIn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        sharedPrefs = getApplicationContext().getSharedPreferences(APP_SHARED_PREFS, Context.MODE_PRIVATE);
        isUserLoggedIn = sharedPrefs.getBoolean("userLoggedInState", false);
        if(isUserLoggedIn) {
            finish();
        }
`}

そして、それらを呼び出し元のアクティビティにリダイレクトすることを期待していましたが、代わりにそうしません。さらに悪いことに、すでにログインしていて別のアプリに移動した場合、このアプリに戻ると、共有設定で既にログインしているため、捨てられてしまいます。前のアプリ。そして、これが私のランチャー活動です。

4

2 に答える 2

2

finish() メソッドを呼び出す直前に、別のアクティビティを開始できます。

アクティビティから結果を取得する場合は、startActivityForResult メソッドを使用してそのアクティビティを開始します。そして、何らかの結果を期待できるアクティビティの onBackPressed メソッドをオーバーライドできます。

public void onBackPressed() { 
    Intent intent = new Intent();
    // add any value to intent
    setResult(RESULT_CANCALLED, intent); 
    super.onBackPressed(); 
}

このインテントを受け取るのは

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    // in this method
}

活動の呼び出し。

于 2013-11-03T11:54:07.763 に答える