複数のページを持ち、あるページから別のページへのナビゲーションが重要なフローを表すアプリケーションを作成しました。ユーザーが最初に警告せずに戻るボタンを押してアクティビティをエスケープし、最後にすべてのスタック トレースを削除して、アクティビティが再度起動されたときに新たに開始されるようにしたくありません。
まだ私は以下の機能に似たものを使用しています:
@Override
public void onBackPressed()
{
this.finish();
Intent int1= new Intent(this, Home.class);
int1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(int1);
super.onBackPressed();
}
ただし、アプリケーションを終了した後に再度起動すると、ランダムなページまたはアプリケーションを終了した場所から再起動することがあります (基本的に、開始が予想されるホーム画面ではありません)。
コードで説明されているように、以前のアクティビティ フラグをすべてクリアする以外に、アプリケーションを終了するクリーンな方法は考えられません。上記のヘルプをいただければ幸いです。
編集 :
ユーザーが戻るボタンを押した場合、アクティビティのフロー中にいつでも、コントロールをメイン ページにスローして戻します (以前のアクティビティ スタック トレースをすべてクリアします)。誰かがアプリケーションを再起動した場合に、メイン ページから正常に再起動するようにします。