2016-11-03 15 views
0

2番目のアクティビティからアプリをログアウト(ログアウトメニューボタンを押す)するとログインページにリダイレクトされますが、もう一度ボタンを押すと2番目の画面アクティビティが表示されます。 )メソッドを使用してもメイン画面には移動しません。それから私は何をしますか? ここに私のコードです。どの画面からでもユーザーがログアウトしてもメイン画面に戻る方法は?

 @Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.second_adapter, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    int id = item.getItemId(); 


    if (id == R.id.logout_sec_Act) { 
     session.logoutUser(); 
     finish(); 
     Toast.makeText(Second_activity.this, "Logout...", Toast.LENGTH_LONG) 
       .show(); 

    } 


    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 
+0

スタックを管理する必要があります。主なアクティビティーに戻るためのインテントをトリガーし、フラグを追加して新しいタスクを開始し、アクティビティーを開始します。 – zgc7009

答えて

-1

これは、以前のアクティビティがあなたのタスクのバックスタックに残っているためです。これを解決する1つの方法は、ログアウト時に新しい空のタスクに移動することです。

Intent logoutIntent = new Intent(this, MainActivity.class); 
logoutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
startActivity(logoutIntent); 
-1

私は方法customFinish()メソッドを作成し、バック主な活動に行くと、必要な場合に、それを呼び出すためにIntentを配置することをお勧めします。

public void customFinish() { 
    Intent intent = new Intent(this, MainActivity.class); 
    startActivity(intent); 
} 
+0

これを行うことでfinish()が呼び出されるたびに、アプリケーションはMainActivity – pablobu

+0

に直接リダイレクトされます@pablobuは答えを編集しました。フィードバックありがとうございます。 –

関連する問題