Стоимость содержания HandlerThread в живых

В моем приложении для Android я слушаю пару системных событий (которые не запускаются довольно часто), и после каждого события я публикую задачу, которая выполняется после небольшой задержки (обычно 1 минута) в фоновом режиме. (после выполнения задачи в ожидании некоторых условий ее можно снова опубликовать)

Мой подход состоял в том, чтобы создать экземпляр 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(...) {
        ...
    }
}

0 ответов

Другие вопросы по тегам