Я тестировал в обоих классах, но в классе HandlerThread
наблюдается отставание.Я отправляю много задач в очередь, и Executors.newFixedThreadPool(1)
работает лучше.Почему?
Это прекрасно работает (если я отправляю задачу 20-30):
private static ExecutorService executorService= Executors.newFixedThreadPool(1);
public static void logd(String str) {
executorService.submit(WriteLogToFile.getTaskFor(str));
}
Это работает с лагами в пользовательском интерфейсе (если я отправляю задачу 20-30, чем больше я добавляю задачичем больше лагов в пользовательском интерфейсе (зависает):
private static HandlerThread handlerThread= new HandlerThread("BLABLA");
private static Handler handler;
static{
handlerThread.start();
handler=new Handler(handlerThread.getLooper())
}
public static void logd(String str) {
handler.post(WriteLogToFile.getTaskFor(str));
}