キャッシュをサーバーと同期する

キャッシュをサーバーと同期する

ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、こちらまでご連絡ください。

オフラインモードをサポートする書き込みスクリーンレットを使用する場合、キャッシュに書き込まれる新しいデータもサーバーと同期する必要があります。 Liferay Screensに含まれる書き込みスクリーンレットがこれを行います。 ただし、カスタム書き込みスクリーンレットを使用する場合は、これを手動で行う必要があります。 これは、スクリーンレットを使用するアクティビティまたはフラグメントで行う必要があります。ただし、このアクティビティまたはフラグメントの正確な場所はユーザー次第です。

書き込みScreenletのデータをサーバーと手動で同期するには、次の手順を実行します。

  1. サーバーと同期する必要があるイベントを取得します。 これを行うには、まずイベントに関連付けられたキャッシュキーを取得する必要があります。 次に、キーを Cache.getObject メソッドの引数として使用します。
  2. イベントでインタラクターを呼び出します。 これにより、データがサーバーと同期されます。

たとえば、次のコードは Cache.findKeys メソッドを使用して、キャッシュ内の BookmarkEvent キーをすべて取得します。 その後のループは、各キーに対応するイベントを取得し、Interactorを呼び出してサーバーに同期します。

String[] keys = Cache.findKeys(BookmarkEvent.class, groupId, userId, locale, 0, 
    Integer.MAX_VALUE); 
for (String key : keys) {

    BookmarkEvent event = Cache.getObject(BookmarkEvent.class, groupId, userId, key); 
    new AddBookmarkInteractor().execute(event); 
}

Screenletクラスでキャッシュキーを設定しないことを選択した場合、キーの代わりに null を渡すことができます。

キャッシュキーを保存および取得する代替方法として、Androidの SharedPreferences APIを使用できることにも注意してください。 たとえば、次のコードは共有設定にキャッシュキーを保存します。

SharedPreferences sharedPreferences = getSharedPreferences("MY_PREFERENCES", Context.MODE_PRIVATE); 
HashSet<String> values = new HashSet<>();
sharedPreferences.edit().putStringSet("keysToSync", values).apply();

その後、共有設定から他のキーと値のセットを取得するのと同じようにキーを取得できます。

SharedPreferences sharedPreferences = getSharedPreferences("MY_PREFERENCES", Context.MODE_PRIVATE); 
HashSet<String> keysToSync = sharedPreferences.getStringSet("keysToSync", new HashSet<>());

関連トピック

イベントクラスを作成または更新する

リスナーを更新する

インタラクタークラスを更新する

スクリーンレットクラスを更新する

« スクリーンレットクラスを更新するリストスクリーンレットでのオフラインモードのサポート »
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています