使HandlerThread保持活动的成本

时间:2015-04-22 10:49:46

标签: android multithreading handler android-handler android-handlerthread

在我的Android应用程序中,我正在听几个系统事件(不经常被解雇),并且在每个事件之后我发布一个任务,该任务在短暂的延迟(通常是1分钟)后执行背景。 (任务完成后,等待某些条件,可以再次发布)

我的方法是实例化一个具有HandlerThread的Singleton并将我的任务发布到该处理程序线程。 (见下面的代码片段) 我理解这个线程现在在我的应用程序的生命周期中存活。我的问题是:
即使在没有做任何工作的情况下,使HandlerThread保持活跃也会受到影响吗?

public class Observer {

    private HandlerThread workerThread;
    private Handler mHandler;

    private Observer() {
        workerThread = new HandlerThread("observer-thread", Process.THREAD_PRIORITY_BACKGROUND);
        workerThread.start();
        mHandler = new Handler(workerThread.getLooper());
    }

    public static Observer getInstance() {
        if (mInstance == null) {
            synchronized (Observer.class) {
                if (mInstance == null) {
                    mInstance = new Observer();
                }
            }
        }

        return mInstance;
    }

    public void post(...) {
        ...
    }
}

0 个答案:

没有答案