2017-08-06 3 views
-2

私は現在、時間に敏感なジオフェンスを使用するアプリケーションを構築しています(現在12時間で上限がありますが、短期的に変更される可能性があります)。その一環として、これらのジオフェンスがどこにあるかを示すマーカーをマップに配置するとともに、これらのジオフェンスに到着するユーザーに応答する通知情報をアクティビティ画面に入力します(これはタイムスタンプ付きリストになります)。現在、これらのマーカーはonDestroyの一部として削除されますが、ジオフェンスは残っています。Android:SQLiteと短期間で時間の影響を受けやすいデータの共有プリファレンス?

onStart/onResumeで地図と通知アクティビティを再設定するには、現在どのジオフェンスがアクティブで、どの通知が永続データ形式でアクティブ化されているかに関する情報を保存します。

永続データの保存形式が最も優れている情報を検索しましたが、通常は複雑なデータの場合はデータベースを使用する方がよいことを確認しましたが、これに課された時間制限が回答に影響するかどうかは疑問でした?情報は現在データベース内にあるため、インフラストラクチャは既にそこに存在します。しかし、私は、通知がx時間前にトリガされたかどうかをチェックし、そうでなければそれを表示/削除したいと思うでしょう。一時的な数学はSQLのパフォーマンスに大きな影響を与えることがあるので、避けることができればそのルートに行くのは嫌です。

もう1つの選択肢は、データを共有設定に保存することでした(おそらく、タイムスタンプをキーとして使用して、getAll()を使用してsharedPrefsを繰り返し実行した場合に実行可能になるはずです) valueは、表示するデータを指す/含むjsonファイルです。

ちょうど私が十分な詳細を与えたことを確認したかった、これで少しlongwindedことは申し訳ありません - 何かアドバイスに感謝し、謝罪を、この問題について他のスレッドに似すぎている場合。データの量は、それがSharedPreferencesで使用可能になることは十分に小さい場合

+0

両方を実装して、ニーズに適したものを確認します。とにかくそのような質問は話題にはなりません。 – Selvin

+0

私はSharedPreferencesに行きます。データベースは、あなたの目的にとって過度のものになるでしょう。短期間のデータは、RDBMSを関与させるのではなく、必ずSharedPreferencesに入れるのが最適です。 –

+0

何について[SnappyDB](https://github.com/nhachicha/SnappyDB)? [cookbook](https://github.com/nhachicha/SnappyDB#create-database)を最初に読んでください – pskink

答えて

0

、あなたはSQLのパフォーマンスを気にする必要はありません。

だから、単純に使いやすいものを選ぶことができます。 これはおそらくSQLite(単一のSQL文で古いエントリを削除できるため)ですが、疑問がある場合は両方を実装して自分自身を比較してください。

関連する問題