android - 使用 rxjava2 遍历列表
问题描述
我有一个自定义对象列表 ( List<Item> itemsList
)。这是我的自定义类:
public class Item {
private String itemId;
private String itemName;
}
初始列表只有 itemName;itemId 将为空。我想遍历列表并为每个项目添加一个 itemId,然后使用新列表,我需要对列表中的每个项目进行某种长操作。
for(Item item : itemsList){
item.setitemId = getUniqueId(); //getUniqueId() returns an unique id
doSomeLongOperation(item);
}
我是 rxjava 运算符的新手。请帮助我了解如何使用 rxjava2 实现相同的目标。
谢谢!
解决方案
用于Observable.fromIterable
迭代列表和Subscribe
后台线程中的所有项目以进行后台工作,然后使用Map
运算符更新您的Item
工作并进行长时间运行。完成后返回你需要的东西。
示例代码:
Observable.fromIterable(itemList)
.subscribeOn(Schedulers.io())
.map(new Function<Item, Item>() {
@Override
public Item apply(Item item) throws Exception {
item.setItemId("Id: " + System.currentTimeMillis());
Log.i(TAG, "In Map Item: " + item.toString());
// do some long operation and return
return item;
}
})
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Item>() {
@Override
public void accept(Item item) throws Exception {
Log.i(TAG, "Item: " + item.toString());
}
});
推荐阅读
- javascript - 设置 git npm 依赖以进行调试
- git - git clone 后文件显示为已修改且此文件不存在
- mysql - 同一张表上的比较选择(mysql)
- python - 如何处理 Matplotlib 中重叠曲线的“像素化”
- shopify - 添加变体的自定义电子邮件模板 shopify
- ruby - Ruby - 参数中的选项
- c# - 同时创建和检索索引?
- r - 查找具有特定长度并包含特定字符的字符串
- powershell - 如何获取邮件联系人所属的所有组?
- android - Android admob,onAdFailedToLoad 代码怎么办 == ERROR_CODE_NO_FILL