コードで Android アプリを終了する方法を探しています。はい、私はこれを行うべきではありません。これは、戻るボタンを押したときに android が処理するためですが、これを実装するように強制するカスタマイズされたフローがあります。私はすでにしばらく探していて、複数の答えを見つけました:
- やるべきではない=>オプションはありません。
- 私のアクティビティでfinish()を呼び出します=>アプリ全体ではなく、1つのアクティビティに対してのみ。
- 特別なフラグを使用して最初のアクティビティへのインテントを開始します => 複数のエントリポイントがあるため、実際にはオプションではありません。
- 自分のプロセスを強制終了するだけです => これについてはわかりません。これはすべてのアクティビティで onDestroy() メソッドを呼び出しますか? また、バックグラウンド サービスはこれで実行し続けますか? (止めてはいけないもの)
だから、アプリを終了する他のオプションはありますか、それともこれらのオプションに本当に制限されていますか? 他に選択肢がない場合は、Application クラスでアクティビティのすべてのインスタンスのリストを作成し、それらをループしてそれらに対して finish() を呼び出すことを考えていました。しかし、これがこれを処理する正しい方法になるかどうかはわかりません。
そのため、ここで質問します。アプリを閉じるにはどの方法が最適ですか?
編集:私は多かれ少なかれ問題を修正しました。アクティビティの WeakReference のリストがあります。すべての onCreate で、アクティビティをリストに追加します。次に、アプリを終了したいときは、リストをループして finish() を呼び出します。問題は:リストが大きくなりすぎると、アンドロイドがすでにそれらを破壊しているため、すべてのアクティビティが終了しません。だから、もう必要ないと確信するたびに、それらを終わらせます。私の場合、リストはアクティビティの 3/4 よりも大きくなることはないので、アクティビティが完了しないことを心配する必要はもうありません。また、この方法では、自分のプロセスを破棄する必要はありません。