私のアプリケーション クラスには、ランチャー画面から起動されるすべてのアクティビティで使用されるオブジェクトがあります。問題は、メモリが少ない場合、システムが自動的にアプリケーションを再起動することです ([設定] -> [アプリケーション] -> [実行中のプロセス] タブで確認できます)。再起動しているため (アプリがバックグラウンドになると発生します)、全体で使用しているオブジェクトが null にリセットされています。
私のシナリオ:
私の Launcher アクティビティでは、DB にアクセスしてスレッドで値を取得し、Setter と Getter を使用して Application クラスで Object 値を設定しています。
それを設定した後、私はそこから 4 つのアクティビティに移動しています A(ランチャー) -> B -> C -> D
現在、バックグラウンドに移行しており、デバイスが低メモリで実行されています。この時点で (つまり、バックグラウンドで) プロセスが強制終了され、再起動されます。
再起動時にオブジェクトが null にリセットされます。最近のリストまたはランチャーからアプリを起動すると、上記の場合はバックグラウンドに移動した場所から最後のアクティビティが起動されますが、アクティビティ D にアクセスしている場所です。 Null ポインターをスローするオブジェクト。
私の質問は、
- システムがオブジェクトを強制終了したときにオブジェクトをアプリケーション クラス レベルで保存する方法はありますか (Activity onSaveInstanceState で行うように)。