`

Looper.prepare()

阅读更多
08-24 16:59:11.223: W/System.err(31649): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()


在出错的语句前面加上下列判断
if (Looper.myLooper()==null) {
    Looper.prepare();
}
分享到:
评论

相关推荐

    Android开发中Looper.prepare()和Looper.loop()

     Looper用于封装了android线程中的消息循环,默认情况下一个线程是不存在消息循环(message loop)的,需要调用Looper.prepare()来给线程创建一个消息循环,调用Looper.loop()来使消息循环起作用,使用Looper....

    handler机制1

    1、首先Looper.prepare()在本线程中保存一个Looper实例,然后该实例中保存一个MessageQueue对象 2、Looper.loop()会让

    Android 消息队列模型详解及实例

    如果想让该线程具有消息队列和消息循环,并具有消息处理机制,就需要在线程中首先调用Looper.prepare()来创建消息队列,然后调用Looper.loop()进入消息循环。如以下代码所示: class LooperThread extends Thread ...

    开新线程引发的常见3个异常

    开一个新线程,引起的异常。1. ANR: application not responding 2.android.view.ViewRoot$...3.java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

    【面试】可以在子线程直接new一个Handler吗?怎么做?

    可以在子线程直接new一个Handler,不过需要在子线程里先调用Looper.prepare(),new一个Handler后,还需要调用Looper.loop()方法。 new Thread(new Runnable() { @Override public void run() { Looper.prepare()...

    实例分析Android中HandlerThread线程用法

    一、HandlerThread的介绍及使用举例  HandlerThread是什么鬼?其本质就是一个线程,但是HandlerThread在启动的时候会帮我们准备好一个Looper,并供外界使用,说白了就是使我们在子线程中... Looper.prepare(); mHan

    Android中的Looper对象详细介绍

    Java 官网对Looper对象的说明: public class Looperextends ObjectClass ... to create one, call prepare() in the thread that is to run the loop, and then loop() to have it process messages until the loop is

    Android7.0 MessageQueue详解

    Android中的消息处理机制大量依赖于Handler。每个Handler都有对应的Looper,用于不断地从对应的...当需要使用Looper时,我们会调用Looper的prepare函数: public static void prepare() { prepare(true); } private

    详解Android应用main函数的调用

    Android常识,App主线程初始化了Looper,调用prepare的地方是ActivityThread.main函数。问题来了,App的main函数在哪儿调用,下面我们来一起学习一下吧

Global site tag (gtag.js) - Google Analytics