2016-04-25 9 views
0

私は、アプリに対してグローバルに保持したいデータを含むシングルトンを持っています。Androidでアクティビティ/アプリケーションが破棄された場合、静的変数が保持されるかどうか

ユーザーが自分のアプリからナビゲートして、システムにリソースが必要な場合は、自分のアプリ(またはそのアクティビティだけがわからない)が壊れることは知っています。その後、ユーザーが再びアプリケーションを開くと、アクティビティが復元され、ローカルアクティビティ変数が自動的に保存されます。

この処理では、グローバルシングルトンクラスで設定された静的変数もアクティビティの外に復元されますか?

+1

に再びその変数を取得しますか、アプリケーションではありません –

+0

http://www.javatpoint.com/android-life-cycle-of-activity - 画像は便利です。静的変数(または現在のアプリケーションコードの状態)は、 'App process killed'で*保存されません。プロセスが強制終了されるかどうかにかかわらず、状態を正しく維持して、状況に関係なく復元できるようにすることが重要です。グローバルなシングルトンクラスであることは、 'app process Killed'ルートをエスケープしません。 – user2864740

+0

@ cricket_007アプリケーションを停止せずに再起動することができます。:} Stop-> Restart-> Start vs. Stop->(Kill->)Create。 – user2864740

答えて

1

いいえ。Androidがプロセスを終了すると、保存されたインスタンスの状態であるBundleのみが復元され、ユーザーが比較的早く(30分以内に)あなたのアプリに戻った場合にのみ復元されます。

保存されたインスタンスの状態Bundleは、ほとんどの場合、ユーザーがしばらくあなたに戻ってこなくても失われても構わない「飛行中」のデータ(部分的に記入されたフォーム)です。それ以外の場合は、ローカルストレージか "クラウド"かにかかわらず、自分でデータを保存します。

0

あなたがその変数の状態を保存したい場合は、活動のあなたのonPauseメソッドでsharedpreferenceでそれを保存して、OSはあなたを停止することを決定した場合に依存してあなたのonResumeメソッド

関連する問題