我知道,这又是一个重复的问题,但我的情况是不同的问题。
我有一个名为abc的类,其中包含一个静态函数和一个处理程序。之前,我无法从静态函数中调用处理程序。然后我谷歌了“从静态函数访问非静态函数”的解决方案,并发现一个解决方法是创建类的实例并访问非静态变量。但现在,为什么我会得到这个错误?
E/AndroidRuntime(13343):java.lang.RuntimeException:无法在没有调用Looper.prepare()的线程内创建处理程序
我有一个名为abc的类,其中包含一个静态函数和一个处理程序。之前,我无法从静态函数中调用处理程序。然后我谷歌了“从静态函数访问非静态函数”的解决方案,并发现一个解决方法是创建类的实例并访问非静态变量。但现在,为什么我会得到这个错误?
E/AndroidRuntime(13343):java.lang.RuntimeException:无法在没有调用Looper.prepare()的线程内创建处理程序
public class abc
{
static public void Instantiate()
{
abc xyz = new abc();
xyz.handler.sendEmptyMessage(1); **//GETTING ERROR IN THIS LINE**
}
public Handler handler = new Handler()
{
public void handleMessage(Message msg)
{
switch (msg.what)
{
}
}
}
}
我的问题:如何从静态函数向handler发送消息?
谢谢。
Instantiate()
方法的?通常情况下,你应该从一个异步任务/工作线程中调用它(除了主UI线程之外的线程)。 - PrincessLeiha