バックグラウンドで120秒間アイドル状態のまま放置すると、自己終了したいアプリがあります。たとえば、私のアプリが使用されているとし、私はHOMEキーをタップしてブラウザアイコンをタップすると、ブラウザアプリがフォアグラウンドにある間、私のアプリはバックグラウンドにプッシュされます。私はRunnableをタイマーは120秒後にコールすることを予定している: バックグラウンドにあるアプリを正常に閉じるにはどうすればよいですか?
Intent intent;
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
myActivity.startActivity(intent);
たグローバルフラグがそうするように設定されている場合(つまり、アプリを閉じ、私は仕上げを呼び出すのonCreate()メソッド()のための私のmyActivityクラスの内部)。
これはうまくいきます。これは、ブラウザアプリがバックグラウンドに送信され、自分のホーム画面のページが表示される、バックグラウンドアプリが閉じられている間にブラウザアプリを使用している場合を除いて、正常に機能します。これは、私のアプリが閉鎖される前に数秒間フォアグラウンドにポップして、ブラウザアプリがバックグラウンドにプッシュされるためだと推測します。
私の仕事(例えば、System.exit(0))を殺す他の方法がありますが、そのメソッドを使用しようとすると、後で私のアプリケーションを再実行しようとすると「強制終了」エラーメッセージが表示されます。また、System.exit()メソッドの使用は、finish()の呼び出しと同じように、アプリケーションをクリーンアップしないので、お勧めしません。
フォアグラウンドランニングアプリに影響を与えずに、バックグラウンドで自分のアプリを正常に閉じることができますか?
ありがとうございました。
なぜあなたはそれをしますか? Androidはメモリ管理とクリーンアップを単独で処理し、素晴らしい仕事をしています。アクティビティライフサイクルの適切なメソッドの中にある、 'onPause()'、 'onStop()'、 'onDestroy()'のリソースを解放してください。 –
アプリには画面に表示される安全なデータが含まれているため、これを行う必要があります。ユーザーがブラウザ(または他のアプリ)に切り替えると、一定時間後に戻るボタンを押すだけで、安全なデータが利用できなくなることを確認したいと思います。 – cohoman