最近、いくつかのアプリを書いているときに、1 つの問題で止まってしまいました。
このアプリには、A と B の 2 つのアクティビティがあります。アクティビティでは、AI は GPS 座標が変わるたびに Web からオブジェクトのリストをダウンロードしています。このアクティビティには、GPS とインターネット接続通話を使用した接続バインド サービスがあります。これらのオブジェクトは、名前から作成されたリストに入れられ、これのいずれかを押した後、このオブジェクトを渡す B アクティビティを開き、アクティビティ B でこのオブジェクトからさらに情報を取得できます。
アクティビティ B にはバインドされたサービスがありません。オブジェクトの内部にあるものを取得して表示するだけです。
アクティビティ A のバインドされたサービスは onStop でバインドされていないため、戻る矢印を使用して戻ると、すべてを再度ダウンロードするのに時間がかかります。さらに興味深いことに、リストはまだいっぱいですが、それらは名前だけであり、オブジェクトの実際のリストは存在せず、カムバック直後に名前のいずれかを押すと、OutOfBoundException が発生します。
それで、私の質問は、新しい(またはこれと同じ)リストをダウンロードする前に、私が活動Aを生きているときにこのオブジェクトを保存し、戻ってきたときにそれらを取得するために何をすべきかアドバイスしてください。
私はもう試した:
onRestoreInstanceState()
パーセル可能なリストを保存できますがonSaveInstanceState()
、アクティビティ A はそれほど速く破棄されないため、onRestoreInstanceState()
;の呼び出しはありません。Shared preferences
、しかし、そこにリストを保存できないため、それは悪い選択でした;ContentValues
またcontent resolvers
、リストを保存できないため、悪い選択です。
他に何かアイデアはありますか?
言い忘れましたが、リストには最大 100 個のオブジェクトがあり、各オブジェクトには 5 つのフィールドがあると仮定しています。