Я последовал this guide на сайте Kinvey и теперь есть что-то это в моем MainActivity:Kinvey: Получить недавно сохраненные объекты из AppData во время автономной работы?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Client mKinveyClient = new Client.Builder(this.getApplicationContext()).build();
final AsyncAppData<MyEntity> ad = mKinveyClient.appData("myCollection", MyEntity.class);
ad.setCache(new InMemoryLRUCache(), CachePolicy.CACHEFIRST);
ad.setOffline(OfflinePolicy.LOCAL_FIRST, new SqlLiteOfflineStore<MyEntity>(this));
MyEntity event = new MyEntity();
event.setName("Launch Party");
event.setAddress("Kinvey HQ");
ad.save(event, new KinveyClientCallback<MyEntity>() {
@Override
public void onFailure(Throwable e) {
Log.e("TAG", "failed to save event data", e);
}
@Override
public void onSuccess(MyEntity r) {
Log.d("TAG", "saved data for entity "+ r.getName());
ad.get(new KinveyListCallback<MyEntity>() {
@Override
public void onSuccess(MyEntity[] result) {
Log.v("TAG", "received "+ result.length + " events");
}
@Override
public void onFailure(Throwable error) {
Log.e("TAG", "failed to fetch all", error);
}
});
}
});
}
Теперь, если телефон находится в сети и я начать несколько раз приложение я получаю следующий результат:
V/TAG﹕ received 0 events
V/TAG﹕ received 1 events
V/TAG﹕ received 2 events
V/TAG﹕ received 3 events
...
Но если активировать режим полета для имитации автономного использования:
V/TAG﹕ received 3 events
V/TAG﹕ received 3 events
V/TAG﹕ received 3 events
V/TAG﹕ received 3 events
...
Как вы можете видеть AppData не будет получать недавно сохраненные объекты в автономном режиме. У меня что-то не так, или такое кэширование невозможно?
Я обновил свой код. Пожалуйста, посмотрите мой выход в журнал. – Steffen
Спасибо за ваш ответ. Я прочитал объяснение «Обновление локального хранилища», но думал, что запрос «получить все» не является технически запросом, и поэтому можно было бы получить все в локальном автономном хранилище. Поскольку эта функция была бы большой причиной для меня выбрать Kinvey над другими конкурентными сервисами MBaaS: знаете ли вы, сколько времени это может потребоваться до тех пор, пока поддержка «offline get all» не будет поддерживаться? – Steffen
Было ли это когда-либо исправлено?Мы нуждаемся в поддержке создания сущностей в автономном режиме, но в документации все еще говорится, что она не будет возвращена. «Если добавлен объект 4, отвечающий критериям запроса, он не будет возвращен с запросом q до тех пор, пока соединение не будет восстановлено». – Dylan