为了账号安全,请及时绑定邮箱和手机立即绑定

将一种方法的输出传递给同一线程中的另一种方法

将一种方法的输出传递给同一线程中的另一种方法

潇潇雨雨 2021-10-20 11:43:38
我在异步任务的 doinBackround 方法中有两种方法。第一种方法用于从云数据库中检索值。第二种方法用于在 msqlite 中保存值。我的问题是当第二个方法被执行时,第一个方法将无法在需要时产生值,因此 null 被传递。请看一下代码片段。    @Override        protected Void doInBackground(Param... params) {        try {            List<Object> objectlist = mAsyncTaskFireDB.getobjectlist(params[0]);         // Output of this method to be passed into 2nd method.            Object[] listarray = new Object[objectlist.size()];            for(Integer i=0;i<objectlist.size();i++)                {                 listarray[i] = objectlist.get(i);                 }            mCat_messageDao.insertAll(listarray);            // 2nd method : Value of 1st method should come here however               getting null here已经检查并用谷歌搜索但没有得到正确的解决方案。我想知道处理这种常见情况的最佳方法是什么。提前感谢您的帮助。
查看完整描述

3 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

你可以看看CompletableFuture API。


您可以轻松地处理需要异步运行,也有任务,他们跑了一前一后,按照上面的步骤到下一个步骤的结果,与方法,如runAsync和thenApplyAsync。使用exceptionally,您还可以仅在前一个任务以异常结束时运行指定的任务。


如果您主要处理并发,这是一个很棒的 API 并且非常有用。


查看完整回答
反对 回复 2021-10-20
  • 3 回答
  • 0 关注
  • 95 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信