0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Couchbase Lite 機能解説:ライブクエリ

Posted at

※ Couchbase Mobile(Couchbase Lite, Syncgateway)に関する記事について、こちらも、参照ください。

ライブクエリとは

ライブクエリは、データベースの変更を監視するクエリです。
ライブクエリは、変更が発生するたびに結果セットを更新します。これは、リアクティブにデータを最新の状態に保つ必要のある、ユーザーインターフェイス(特にテーブル/リストビュー)を構築するための優れた方法です。

ライブクエリ駆動のUIはユーザーが手動で更新しなくても自動的に更新され、データ表示に反映されます。

実装解説

ライブクエリの開始

Query query = QueryBuilder 
    .select(SelectResult.all())
    .from(DataSource.database(database));

// Adds a query change listener.
// Changes will be posted on the main queue.
ListenerToken token = query.addChangeListener(change -> { ② 
    for (Result result : change.getResults()) {
        Log.d(TAG, "results: " + result.getKeys());
        /* Update UI */
    }
});

// Start live query.
query.execute(); 
  • QueryBuilderを使用してクエリステートメントを作成します
  • ② リスナーをアタッチしてライブクエリをアクティブにします。後でライブクエリを停止するためにトークンを保存します
  • ③ クエリを開始します。これにより、ライブクエリがすぐに実行され、結果がチェンジリスナーに送信されます。変更が検出されると、クエリが自動的に実行され、新しいクエリ結果が任意のオブザーバー(チェンジリスナー)に送信されます。

ライブクエリの停止

query.removeChangeListener(token); 

トークンを使用してリスナーを削除します。これにより、ライブクエリが停止します。

参考情報

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?