アプリケーションがアイドル状態のとき、Android はプロセスを強制終了します。ユーザーがしばらくしてからアプリケーションを再度開くと、最上位のアクティビティのみが作成されます。これは、アクティビティが他のオブジェクト (現在は破棄されている) の初期化に依存しているため、私にとっては問題です。
その場合にやりたいことは、アプリケーションを再起動することです。どうやってやるの?
アプリケーションがアイドル状態のとき、Android はプロセスを強制終了します。ユーザーがしばらくしてからアプリケーションを再度開くと、最上位のアクティビティのみが作成されます。これは、アクティビティが他のオブジェクト (現在は破棄されている) の初期化に依存しているため、私にとっては問題です。
その場合にやりたいことは、アプリケーションを再起動することです。どうやってやるの?
Application
以前にAndroidによって破棄された後に起動されていることを確認するだけで、変数をカスタムApplication
クラスに保持しtrue
、アプリケーションの初期化後に設定することでこれを行うことができます. そのため、アプリケーションが再起動されると、このフラグは false になり、次のように指定Intent
してメインを起動するようにします。Activity
FLAG_ACTIVITY_CLEAR_TOP
Intent reLaunchMain=new Intent(this,MainActivity.class);
reLaunchMain.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(reLaunchMain);
この答えはあなただけのものだと思います。
進行状況が終了したら、これを呼び出します
finish();
Intent intent = new Intent(this, sameactivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Application
おそらく、アプリのクラスの実装にそのようなオブジェクトを格納することを検討する必要があります。
これらのオブジェクトに、より永続的である必要がある状態が含まれている場合、そのようなオブジェクトの状態を各アクティビティのonPause()
メソッドで、データベース、SharedPreferences、またはリモートのいずれかに保存する必要があります。