我有一个收藏小部件。我的数据来自api电话。我正在使用javarx进行改造。
如果我同步更新列表,一切正常:
@Override
public void onDataSetChanged() {
tasks.add(getTask());
}
但是,我需要异步更新它们,因为很难同步执行api方法。
有没有办法通知视图工厂新数据是这样的:
@Override
public void onDataSetChanged() {
LinkedHashMap<String, String> params = new LinkedHashMap<String,String>() {{
put("data", "1");
}};
Repository.provideRepository(api)
.getCampaignsList(params)
.subscribe(taskList -> {
tasks.clear();
tasks.addAll(taskList);
notifyUpdateItems(); // something like this
});
}
答案 0 :(得分:-1)
我不知道JavaRx可以在同一个线程上执行。解决方案就是
Repository.provideRepository(api)
.getCampaignsList(params)
.subscribeOn(Schedulers.immediate())
.observeOn(Schedulers.immediate())
.subscribe(taskList -> {
tasks.clear();
tasks.addAll(taskList);
notifyUpdateItems(); // something like this
});