如何在 Android Jetpack Workmanager 中输入和输出 AN Object 数据?
Posted
技术标签:
【中文标题】如何在 Android Jetpack Workmanager 中输入和输出 AN Object 数据?【英文标题】:How to input and output A Object data in Android Jetpack Workmanger? 【发布时间】:2020-09-19 00:32:16 【问题描述】:在android Jetpack WorkManger中,在Worker中定义一个输出数据:
new Data.Builder().putLong(xxx);
有putLong, putString, putBoolean
,但是没有定义一个函数来放置Object
。
如何在 Worker 中输出a Entity Object
。
public class DownloadDB extends Worker
private static final String TAG = "DownloadDB";
private List<ChoiceTestItem> mChoiceTestItems;
public DownloadDB(@NonNull Context context, @NonNull WorkerParameters workerParams)
super(context, workerParams);
@NonNull
@Override
public Result doWork()
downChoiceTestItemFromNetwork();
HashMap<String, Object> map = new HashMap<>();
//Wrong Code here!!!
map.put("a", mChoiceTestItems);
@SuppressLint("RestrictedApi") Data data = new Data.Builder().putAll(map).build();
return Result.success(data);
...
【问题讨论】:
【参考方案1】:没有定义一个函数来放置一个对象。
正确。您不能将任意对象放入Data
。正如the documentation 所说:“这是一个轻量级容器,不应被视为您的数据存储”。不允许任意数据类型是他们强制执行此操作的一种方式。
如何在 Worker 中输出实体对象。
如果“实体对象”是指 Room @Entity
,请将实体放入数据库中。将主键或其他标识符放入Data
,并使用它稍后从数据库中检索实体。
【讨论】:
1.这是一个轻量级容器,不应将其视为您的数据存储 2. 将实体放入您的数据库中 谢谢。以上是关于如何在 Android Jetpack Workmanager 中输入和输出 AN Object 数据?的主要内容,如果未能解决你的问题,请参考以下文章