无法在对话框创建时创建处理程序

时间:2014-02-12 02:53:01

标签: android dialog runtimeexception

我收到错误

02-11 21:40:25.326: E/AndroidRuntime(1950): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

尝试创建对话框时。我需要执行此操作的类不会扩展活动(我将上下文从另一个类传递给此类),所以我正在寻找一种方法来创建一个简单的弹出消息,默认的android风格没有这个错误。感谢。

1 个答案:

答案 0 :(得分:0)

默认情况下,只有主线程(UI线程)具有looper,您可以使用它来处理事件。这意味着当您创建子线程(非UI线程)时,它将没有looper。通过调用Looper.prepare,您可以为子线程创建一个新的Looper对象,然后才能获得handler个对象。但我想这不是你想要的(LooperHandler内使用,通常你不关心它的用法。)。

一种方法是使用getMainLooper作为处理构造函数的参数。这样您就可以使用与UI线程相同的looper对象