5

この方法を使用すると、ログイン ページに戻りますが、[戻る] ボタンをクリックすると前のアクティビティに戻ることができます。他のアクティビティを閉じないのはなぜですか?

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

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

4

3 に答える 3

3

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

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

Intent i = new Intent(getApplicationContext(), LoginActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
于 2012-08-25T12:31:39.640 に答える
0

このintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);を使用してみてください。インテントの代わりに.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

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

startActivity(intent);
于 2012-08-25T12:31:41.743 に答える
0

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

于 2012-08-25T12:24:57.310 に答える