单次任务和周期任务的创建和执行,现在已经清楚了。但是有问题,之前创建的Worker就是一个单纯的Worker,和任务添加者是没有关系的,如果需要传递参数,应该怎么做?
WorkRequest.Builder.setInputData(Data)
就是我们要找的东西。
Data
参数传递使用了一个叫Data
的类
1 |
|
Data是一个轻量级的键值对数据类,键为String,值可以是String、原始类型以及它们的数组。如果是其他类型,就会有异常。
从下面代码就能看出:
1 |
|
而且传递的数据大小也有限制,最大为MAX_DATA_BYTES(10K)
参数传递
有了Data的知识,现在就传递一个名称给DelayWorker,作为一个描述字符串。
读取
DelayWorker新增一个名称参数,并在任务里面读取并打印出来
1 |
|
写入
如前文所说,写入参数当然使用Worker.Builder
的方法:
1 |
|
执行结果:
1 |
|
成功实现名称传递。
小结
今天的内容很简单,但又很重要 —— 带参的任务,一定不会是个低概率需求。