我是Android
的新手,但在Handler
上遇到了一些问题。
我有一个工作线程,它在非活动类中运行。我希望工作线程处理一些后台任务,而我也想在非活动类上做其他事情。但是,处理程序根本不起作用。有替代解决方案吗?以下是我的实施方式:
public class NonActivity {
private WorkerThread mWorkerThread = null;
private Handler mHandler = new Handler(){
//why the message never come here?????
}
//constructor
public NonActivity()
{
//call worker thread from non-activity class
mWorkerThread = new WorkerThread();
}
}
私有类WorkerThread扩展了Thread {
public void run() {
//call sendMessageToMainThread
sendMessageToMainThread();
}
private void sendMessageToMainThread() {
mHandler.sendMessage(put message here);
}
}
答案 0 :(得分:0)
处理程序需要一个looper来运行looper附加到的线程中的消息。默认情况下,handler在当前线程中使用looper,但如果线程没有looper,则需要提供显式looper。您可以使用the main looper或在单独的线程中创建自己的(请参阅looper文档中的示例)。