Android集合小部件异步更新

时间:2018-02-01 12:44:06

标签: android asynchronous widget retrofit

我有一个收藏小部件。我的数据来自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
        });
}

1 个答案:

答案 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
        });