В моем коде Android есть механизм обработки событий, позволяющий записывать значения датчиков в файл. Прямо сейчас я делаю это в основном потоке пользовательского интерфейса, и, следовательно, отзывчивость кнопок пользовательского интерфейса очень вялая, и я хотел бы ускорить это.
Как я могу использовать многопоточность в функциях обработки событий? Я пытаюсь сделать это так:
- Создать глобальную переменную writeNow.
- Когда значение датчика изменяется, установите WriteNow = true
Создать поток в классе, который выглядит следующим образом:
Thread thread1 = new Thread()
{
public void run()
{
if(writeNow == true)
{
try
{
fos.write(s.getBytes());
}
catch (IOException e)
{
e.printStackTrace();
}
writeNow = false;
}
}
};
Таким образом, всякий раз, когда writeNow имеет значение true, он записывает в файл и затем устанавливает для WriteNow значение false. Тем не менее, я понимаю, что это неправильный подход, потому что поток будет выполняться один раз, а затем прекратит выполнение. Когда я попробовал простой пример с помощью while (true) и wait (), я обнаружил, что поток прерывается миллионы раз.
Итак, как мне заключить этот механизм обработки событий в один поток для ускорения процесса?
Спасибо!