弹框没反应使用Looper解决_the caller should invoke Looper.prepare() and Looper.loop()---Android原生开发工作笔记239
发布日期:2021-06-29 17:54:21 浏览次数:2 分类:技术文章

本文共 874 字,大约阅读时间需要 2 分钟。

            E/Handler: This is not main thread, and the caller should invoke Looper.prepare()  and Looper.loop()called byandroid.os.Handler.<init>:122 android.app.Dialog.<init>:156 android.app.AlertDialog.<init>:205 android.app.AlertDialog$Builder.create:1112 com.baidu.idl.main.facesdk.utils.PromptDialog.showConfirm:142 com.baidu.idl.main.facesdk.activity.gate.FaceBodyCheckActivity$23.onResponse:2262 okhttp3.RealCall$AsyncCall.execute:126 okhttp3.internal.NamedRunnable.run:32 

            上面这个错误:

是因为消息循环阻塞引起的:会导致的现象是,比如某个消息框,本来应该弹出来,但是消息处理阻塞了,没有弹出来

等:

用法:下面这样用,要注意:Looper.prepare(); 和Looper.loop() 是成对出现的.并且一定要注意,一个线程中,只能有一对,Looper.prepare(),Looper.loop()

Looper对象,一个线程中只能创建一个,所以可以看到下面用的时候,故意创建了一个线程.

一般像下面这样用就可以了,如果自己在一个线程中创建了多Looper对象就会报错:

E/AndroidRuntime: FATAL EXCEPTION: main

    Process: com.baidu.idl.face.demo, PID: 5953
    java.lang.RuntimeException: Only one Looper may be created per threa

转载地址:https://credream.blog.csdn.net/article/details/116932376 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Command line is too long. Shorten command line for Application---微服务升级_SpringCloud Alibaba工作笔记0067
下一篇:AndroidStudio_android中实现对properties文件的读写操作_不把properties文件放在assets文件夹中_支持读写---Android原生开发工作笔记238

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月25日 16时11分04秒