場所のコレクションを持つSqliteデータベースがあります。このデータベースへのアクセスには、コンテンツプロバイダーが使用されます。
次に、アクティビティ内の場所のリストをクリックして、データベース内の場所にアクティブまたは非アクティブのフラグが付けられます。
次に、アクティブな場所をリッスンし、場所に到達したときに何かを実行するサービスが実行されます。
私の質問は、サービスを運用するための最良の方法は何でしょうか。
データの変更時に自動的に更新されるアクティブな場所のカーソルを監視するようにします。場所のリストを使用して実行する必要があるすべてのアクティビティは、場所をアクティブに設定してから、サービスインテントを呼び出して実行されていることを確認することです。
これの利点は、私が見ているように、データベースで何が起こってもサービスが最新であるということです。しかし、カーソルを開いたままにして、場所が変わるたびにカーソルを移動するのが効率的かどうかはわかりません。
もう1つの方法は、アクティビティでデータベース内の場所をアクティブに設定してから、サービスにバインドし、場所データを送信してリッスンすることです。次に、サービスはこれをlistarrayに格納し、場所が変更されるたびにリストをトラバースして、場所に到達したかどうかを確認します。
これの欠点は、場所の修正ごとにサービスをバインドし、場所を変更する必要があることです。利点は、カーソルが開いておらず、位置がの小さなリスト配列のみが格納されることです。
では、サービスにカーソルを置くか、サービスにバインドするのでしょうか。それとも私が行方不明になっているさらに良い方法はありますか?