このシナリオのカスタム解像度を設定したい: 1- オフライン モードで 1 つのデバイスの realmobject の整数フィールドをインクリメントする 2- オフライン モードで別のデバイスの同じ realmobject の同じ整数フィールドをインクリメントする デフォルトのカスタム解像度は last update wins ですが、私の場合、最後の更新ではなく、ライブになった後に両方のデバイスの増分が結果に反映されるようにします。テストのためにこのコードを試しました:
Realm realm = Realm.getDefaultInstance();
final RealmResults<Number> results= realm.where(Number.class).findAll();
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
int num = results.get(0).getNumber()+1;
results.get(0).setNumber(num);
}
});
Number クラスは次のようになります。
public class Number extends RealmObject {
@PrimaryKey
private String id;
private int number;
public String getId() {
return id;
}
public void increment(){
this.number++;
}
public void setId(String id) {
this.id = id;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
この問題は、私のアプリにとって非常に重要です。クライアント側でこれを行うことができない場合、非常に興味を持っていたレルム モバイル プラットフォームを使用できなくなります。