私はまだ Android にかなり慣れていないので、Activity のライフ サイクルを、デスクトップ アプリケーション開発者として知っていて使用できるものと調整するのにまだ問題があります。数週間前に、私が作成しようとしていた非常に単純なアプリについて、ここに質問を書きました。私の努力の結果は、正確には成功ではありませんでした。電話を回転させると、現在のアクティビティが破棄されて再起動されます (調査した文献によると)。これにより、特定のオブジェクトが再初期化され、正しく動作しなくなります。だと思う。
この実験により、アクティビティを使ってプログラミングする方法についてさらに自分自身を教育する必要があることが明らかになりました。このアクティビティの問題に対処する方法について、ガイドライン、テクニック、ベスト プラクティスを探すのに時間を費やしました。残念なことに、簡潔で有用なものを見つけることができませんでした。(信じてください。現時点では、Android の本をもう 1 冊も読む気力がありません。) 現在、私が進歩できる唯一の方法は、実際にプログラミングすることです。
だから私はそれを翼にすることにしました。私が最初に考えたのは、アプリケーションの状態に関係なく、私のアクティビティが左右に殺されている場合、バックグラウンドで存続するものを作成する必要があるということでした。基本的にショーを実行し、アプリケーションの状態を維持し、タイマーを実行するコントローラークラスを作成しました。アクティビティは、静的ファクトリ メソッドを介して OnCreate で参照を取得します。これにより、必要に応じて、常に適切な基本的なシングルトン パターンが確保されます。その後、アクティビティは単にコントローラーからのデータを表示し、ユーザーの操作を渡します。
Android のメカニズムに関する私の理解が正しければ、これは機能するはずです。でも考えさせられました。リソースを解放するためにいつでもシステムによって Activity を強制終了できる場合、Activity ではないクラスはどうなるでしょうか? アプリが実行されている間ずっと生きていると期待できますか、それともいつでも強制終了できますか?
とにかく、アプリの終了はいつ発生しますか? アプリの最終画面に「終了」ボタンを配置し、「ユーザーがアプリの終了を要求したので、終了してください」と Android に伝えようとしました。これまでのところ、私は成功していません。Sygic のような特定のアプリは、指示すると終了することを知っています (または、少なくともアプリの動作に基づいてこれを想定しています)。スタック内のアプリのアクティビティの前にあるアクティビティ) を忘れてしまいます。数日間アプリを使用しなかった後、アプリに戻ってくることがあり、最後に放置した状態になっています。それはずっと不必要に実行されていましたか?どうすれば防ぐことができますか?
Android が必要に応じてアクティビティを停止することは知っていますが、アプリ全体で同じことが行われますか? アプリの終了とは何ですか? また、いつ、どのように終了しますか?