1

在我的 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(...) {
        ...
    }
}
4

0 回答 0