Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 保持HandlerThread活动的成本_Android_Multithreading_Handler_Android Handler_Android Handlerthread - Fatal编程技术网

Android 保持HandlerThread活动的成本

Android 保持HandlerThread活动的成本,android,multithreading,handler,android-handler,android-handlerthread,Android,Multithreading,Handler,Android Handler,Android Handlerthread,在我的android应用程序中,我正在监听一些不经常被触发的系统事件,每次事件发生后,我都会发布一个任务,该任务会在短时间延迟后执行,通常在后台执行1分钟。 任务完成后,在等待某些条件的情况下,可以再次发布该任务 我的方法是实例化一个具有HandlerThread的Singleton,并将我的任务发布到该HandlerThread。请参阅下面的代码片段 我知道这个线程在我的应用程序的整个生命周期中都是活跃的。我的问题是: 即使HandlerThread不工作,保持其活动状态是否会影响性能 pub

在我的android应用程序中,我正在监听一些不经常被触发的系统事件,每次事件发生后,我都会发布一个任务,该任务会在短时间延迟后执行,通常在后台执行1分钟。 任务完成后,在等待某些条件的情况下,可以再次发布该任务

我的方法是实例化一个具有HandlerThread的Singleton,并将我的任务发布到该HandlerThread。请参阅下面的代码片段 我知道这个线程在我的应用程序的整个生命周期中都是活跃的。我的问题是: 即使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(...) {
        ...
    }
}

不,空闲时它正在等待