当前位置: 首页 > 知识库问答 >
问题:

怎么能理解QueryInventoryFinishedListener是真的完了呢

桑鸿志
2023-03-14

嗯,在程序中,我用在应用程序计费。在< code > query ventoryfinished listener 之后,我想更改用户界面。所以我做成了这样。但是它给出了这个错误。

@Override
    protected Void doInBackground(Void... params) {
        mHelper.queryInventoryAsync(mGotInventoryListener);
        return null;
    }

@Override
    protected void onPostExecute(Void result) {
        updateUserinterface();
        super.onPostExecute(result);
    }

E/AndroidRuntime(26593): FATAL EXCEPTION: AsyncTask #1 E/AndroidRuntime(26593): java.lang.RuntimeException: 执行 doInBackground() E/AndroidRuntime(26593): at android.os.AsyncTask$3.done(AsyncTask.java:299) E/AndroidRuntime(26593): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) E/AndroidRuntime(26593): at java.util.concurrent.FutureTask.setException(FutureTask.java:124) E/AndroidRuntime(26593): atjava.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) E/AndroidRuntime(26593): at java.util.concurrent.FutureTask.run(FutureTask.java:137) E/AndroidRuntime(26593): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) E/AndroidRuntime(26593): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) E/AndroidRuntime(26593): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) E/AndroidRuntime(26593): at java.lang.Thread.run(Thread.java:856) E/AndroidRuntime(26593): 由以下原因引起: java.lang.RuntimeException: 无法在未调用 Looper.prepare() 的线程内创建处理程序

如果我没有使用< code>doInBacground()类,有时一些高级的东西会显示为还没有购买。我想阻止这件事。你知道吗?

共有1个答案

魏煜祺
2023-03-14

"在查询完事件完成监听程序后,我想更改用户界面."那你为什么不做呢?

您正在 onPostExecute 中更新 UI,而不是在 onQueryInventoryFinish...为什么不呢?

此外,.queryInventoryAsync() 在后台运行,这就是为什么它被称为 Async...不需要另一个后台线程围绕它。

 类似资料:
  • 本文向大家介绍你对微服务是怎么理解的?相关面试题,主要包含被问及你对微服务是怎么理解的?时的应答技巧和注意事项,需要的朋友参考一下 微服务,又名微服务架构,是一种架构风格,它将应用构建为一个小型自治服务的集合,以业务领域为模型。 通俗地说,就像蜜蜂通过对蜡制的等边六角形单元来构建它们的蜂巢。 他们最初从使用各种材料的小单元开始,一点点的搭建出一个大型蜂巢。 这些小单元组成坚固的结构,将蜂窝的特定部

  • 你是怎么理解Vue响应式原理的?,这是一道前端面试非常高频的Vue面试题,但是很多同学在面试时候只能说出个大概,老规矩,点赞收藏支持一下,给我一分钟,理想哥教大家该怎么满分回答这个问题 如果我是求职者,我会这么回答: 在vue2中,Vue的响应式原理是使用Object.defineProperty来实现的,使用defineProperty挨个对data中的属性实现监听,当数据变化后再去触发视图的更

  • 本文向大家介绍MySQL简单了解“order by”是怎么工作的,包括了MySQL简单了解“order by”是怎么工作的的使用技巧和注意事项,需要的朋友参考一下 针对排序来说,order by 是我们使用非常频繁的关键字。结合之前我们对索引的了解再来看这篇文章会让我们深刻理解在排序的时候,是如何利用索引来达到少扫描表或者使用外部排序的。 先定义一个表辅助我们后面理解: 这时我们写一条查询语句 s

  • 我已经有以下CORS问题好几天了,我不打算解决它。localhost:4200上的Angular应用程序不允许我访问上传照片的路径。 我的后台在拉勒维尔 我可以登录、注册和执行其他帖子请求,但不能这样。 这是我的应用程序的图像。 这是我注册为全球中间件的CORS中间件] 网络选项卡中的响应标头 1

  • C++ 一面:20min 实习做的啥 三大特性 多态的原理 智能指针及原理 当天下午立马二面:20min 实习做的啥 第二天通知没过😅 他们真的在招人么😅 #实习,投递多份简历没人回复怎么办##简历中的项目经历要怎么写##我发现了面试通关密码##实习,投递多份简历没人回复怎么办##我的实习求职记录#

  • 问题内容: 有人可以使用以下示例数据解释JavaScript Truthy和Falsy。我读过其他主题,但仍然感到困惑。 根据我的理解,我相信这是唯一的真理,而其余的都是虚假的-这是正确的吗? 问题答案: 据我了解,我相信var a = 1; 是唯一的真理,其余都是虚假的-这是正确的吗? 没有。 var a = 0; 数字零是 虚假的 。但是,请注意,字符串零是真实的。 var a = 10 ==