私は現在、時間に敏感なジオフェンスを使用するアプリケーションを構築しています(現在12時間で上限がありますが、短期的に変更される可能性があります)。その一環として、これらのジオフェンスがどこにあるかを示すマーカーをマップに配置するとともに、これらのジオフェンスに到着するユーザーに応答する通知情報をアクティビティ画面に入力します(これはタイムスタンプ付きリストになります)。現在、これらのマーカーはonDestroyの一部として削除されますが、ジオフェンスは残っています。Android:SQLiteと短期間で時間の影響を受けやすいデータの共有プリファレンス?
onStart/onResumeで地図と通知アクティビティを再設定するには、現在どのジオフェンスがアクティブで、どの通知が永続データ形式でアクティブ化されているかに関する情報を保存します。
永続データの保存形式が最も優れている情報を検索しましたが、通常は複雑なデータの場合はデータベースを使用する方がよいことを確認しましたが、これに課された時間制限が回答に影響するかどうかは疑問でした?情報は現在データベース内にあるため、インフラストラクチャは既にそこに存在します。しかし、私は、通知がx時間前にトリガされたかどうかをチェックし、そうでなければそれを表示/削除したいと思うでしょう。一時的な数学はSQLのパフォーマンスに大きな影響を与えることがあるので、避けることができればそのルートに行くのは嫌です。
もう1つの選択肢は、データを共有設定に保存することでした(おそらく、タイムスタンプをキーとして使用して、getAll()を使用してsharedPrefsを繰り返し実行した場合に実行可能になるはずです) valueは、表示するデータを指す/含むjsonファイルです。
ちょうど私が十分な詳細を与えたことを確認したかった、これで少しlongwindedことは申し訳ありません - 何かアドバイスに感謝し、謝罪を、この問題について他のスレッドに似すぎている場合。データの量は、それがSharedPreferences
で使用可能になることは十分に小さい場合
両方を実装して、ニーズに適したものを確認します。とにかくそのような質問は話題にはなりません。 – Selvin
私はSharedPreferencesに行きます。データベースは、あなたの目的にとって過度のものになるでしょう。短期間のデータは、RDBMSを関与させるのではなく、必ずSharedPreferencesに入れるのが最適です。 –
何について[SnappyDB](https://github.com/nhachicha/SnappyDB)? [cookbook](https://github.com/nhachicha/SnappyDB#create-database)を最初に読んでください – pskink