我们可以在Android中的非活动类中调用处理程序吗?

时间:2015-02-10 13:35:13

标签: android

我是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);    
    }
}

1 个答案:

答案 0 :(得分:0)

处理程序需要一个looper来运行looper附加到的线程中的消息。默认情况下,handler在当前线程中使用looper,但如果线程没有looper,则需要提供显式looper。您可以使用the main looper或在单独的线程中创建自己的(请参阅looper文档中的示例)。