2012-08-25 10 views
5

このメソッドを使用すると、ログインページに戻りますが、私はまだ戻りボタンをクリックして前のアクティビティに戻ります。なぜ他の活動を終わらせないのですか?1つを除くすべてのアクティビティを終了します

public void restartApplication() { 
     Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName()); 
     i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(i); 
    } 

ログインアクティビティ以外のすべてのアクティビティを終了する方法はありますか?またはアプリ全体を再起動しますか?

答えて

0

finish();startActivity(i);の後に入れてみてください。

3

私はパッケージマネージャーのため、新しい履歴スタックからアクティビティが開始されていると思います。

パッケージマネージャから取得する代わりに、アクティビティ名を使用してください。 例

Intent i = new Intent(getApplicationContext(), LoginActivity.class); 
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(i); 
0

このintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)を使用してください。 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)のインプレース。

Intent intent = new Intent(getApplicationContext(), 
     yourActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

startActivity(intent); 
関連する問題