本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!