1

アプリケーション データを格納するために、シングルトンからアプリケーション オブジェクトに切り替えました。私が理解しているように、キャッシュされたデータが通常のシングルトンよりもアプリケーション オブジェクトに保存される可能性がはるかに高いからです。

しかし、私はまだ問題を抱えています。他のいくつかのアプリに切り替えて自分のアプリに戻ると、ロードした後にイベントをロードする呼び出しでgetApplication()null ポインター例外がスローされます。

さらに奇妙に感じるのは、最初の意図からのバンドルがまだアクティブであり、アプリケーションの切り替えを生き延びていることです。

必ずしも永続的な方法で永続化する必要がないデータを保持するにはどうすればよいですか (アプリケーション全体が強制終了され、再ロードされた場合、Web サービスからデータを取得して新たに開始するだけです。これが、次のように切り替えると考えた理由です)アプリケーションオブジェクトは問題ありません)

4

1 に答える 1

0

アプリケーションがユーザーによってバックグラウンドに置かれ、その後戻されたときに関連するデータを永続化することを検討していますか?

おそらく、メソッド onSaveInstanceState と onRestoreInstanceState をオーバーライドし、バンドルから保存して回復することが、あなたが探しているものです。

http://developer.android.com/reference/android/app/Activity.html#onRestoreInstanceState(android.os.Bundle )

http://developer.android.com/reference/android/app/Activity.html#onSaveInstanceState(android.os.Bundle )

次に、Parcelable インターフェイスを定義することができます

http://developer.android.com/reference/android/os/Parcelable.html

保存したいクラスに。

または、共有設定 API を使用することもできます。

http://developer.android.com/reference/android/content/Context.html#getSharedPreferences(java.lang.String , int)

于 2012-12-12T15:31:50.217 に答える