状態の保存と状態の回復は、Android の主要な問題です。状態を保存して復元する必要があるため ( Intent
s、Parcelable
s、などを使用)、単純なタスクは複雑であり、スレッド化の問題によってさらに複雑になります ( AsyncTaskLoader
s、LoaderManager
s、や。。など。)。
ただし、私が理解しているように、static
変数はプロセス全体で持続し (ここではアプリの実行に関連しています)、状態を保存し、これらのstatic
変数を介してスレッドをファネリングする方がはるかに簡単です。
もちろん、プロセスが強制終了された場合、状態は失われますが、フォアグラウンドで実行されているアプリケーションでこれが実際にどのくらいの頻度で発生するのでしょうか?
さらに状態を維持することは良いことですが、ほとんどのアプリケーションにとって重要ではありません。特に、状態が失われることがめったにない場合はそうです。
また、状態が非常に重要な場合は、ライフサイクルによって提供される関数を使用してActivity
その状態を保存および回復しないでください。プロセスが強制終了されたときに関数が呼び出されることが保証されていないため、代わりに常に保存する必要がありますいくつかのデータベースでのあなたの状態。
推奨される方法はやり過ぎで、ほとんどのアプリの開発を不必要に複雑にしていると思いますが、それが受け入れられた理由は何ですか?