私は非常に退屈な問題を抱えています。アプリがバックグラウンドに移行すると、LogCatが示すようにプロセスが強制終了されることがあります。
INFO/ActivityManager(187): Low Memory: No more background processes.
INFO/ActivityManager(187): Process com.app.myapp (pid 20681) has died.
INFO/WindowManager(187): WIN DEATH: Window{40592708 com.app.myapp/app.myapp.dashboard.Dashboard paused=false}
ERROR/InputDispatcher(187): channel '408b1d40 app.myapp/app.myapp.menus.products.Promotions (server)' ~ Consumer closed input channel or an error occurred. events=0x8
ERROR/InputDispatcher(187): channel '408b1d40 app.myapp/app.myapp.menus.products.Promotions (server)' ~ Channel is unrecoverably broken and will be disposed!
INFO/WindowManager(187): WIN DEATH: Window{408b1d40 app.myapp/app.myapp.menus.products.Promotions paused=false}
INFO/ActivityManager(187): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10100000 cmp=app.myapp/.Main } from pid 187
INFO/ActivityManager(187): Start proc app.myapp for activity app.myapp/.menus.products.Promotions: pid=20721 uid=10062 gids={3003, 1015}
次に、タスクスイッチャー(ホームを長押し)を介してアプリに戻ろうとすると、最後に開いたアクティビティに戻ろうとします...そしてクラッシュします。
アプリ全体が閉じられたときにメインを開いて、最初から開かないのはなぜですか?
ERROR/InputDispatcherエラーが常に表示されるとは限りません。
アップデート:
問題は...アプリケーションは復元されますが、(ハッシュマップとして)ダウンロードされたオブジェクトは復元されません...そのため、それらにアクセスすると...「問題」が発生します...
更新2:
アプリケーションに必要なデータが含まれている場合、またはそれがnullである場合(この場合はアプリを再起動します)、BaseActivityでonCreate(他のすべてによって拡張される)を確認することで、問題を解決できました。
より洗練された解決策、または少なくともアプリケーションが強制終了された場合にアプリケーションを再起動したいことをデバイスに伝える方法はありますか?
このリンクは問題を理解するのに役立ちました...そしてアプリケーションからのデータを保存する方法について明確な答えがないことを知っています:Androidでグローバル変数を宣言する方法は?
更新3:
そこで、アプリケーションデータを正しく保存する方法について具体的に質問しました。これは、同じ質問を持つ人に役立つ可能性があります:Android:アプリケーションシングルトンクラスに保存されたデータを保存するための最良の方法