В действии У меня есть какой-то тайм-аут для действия пользователя. Если пользователь ничего не делает, мне нужно произвести некоторые другие действия для системы. Для этого я использую HandlerЗаменить обработчик Android с помощью RXJava
protected void stopTimeout()
{
handler.removeMessages(0);
}
private void startTimeout()
{
stopTimeout();
handler.postDelayed(new Runnable()
{
@Override
public void run()
{
//SOME ACTIONS
}
}, 180 * 1000L);
}
Обработчик может быть остановлен на некоторые действия пользователя, такие как кнопки мыши
btnCancel.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View view)
{
// user actions
stopTimeout();
}
});
Но на данный момент я должен много вариантов действий пользователя. Все это нажатие на stopTimout из асинхронных потоков и обработчика не выглядит правильным решением. Проект Я уже перехожу на RXJava и
Я могу выяснить, как сделать эту часть с RXJava.
Рассмотрите возможность использования 'removeMessagesAndCallbacks (NULL)' для очистки Handler. – Shark
callbacks hell, no thx, просто удалил все это из проекта –