У меня есть два действия в моем приложении, скажем, ActivityOne и ActivityTwo, и третий класс, который выполняет некоторую работу в фоновом режиме, скажем, WorkerClass. WorkerClass отправляет Message в поток пользовательского интерфейса, используя Handler.
ActivityOne интересуются одними сообщениями, а ActivityTwo - другими, но оба они работают в основном потоке. Можно ли определить один экземпляр Handler, который удовлетворит оба действия в основном потоке?
Пока что я подумываю создать два экземпляра Handler, один для ActivityOne, а другой для ActivityTwo. WorkerClass будет отправлять сообщения каждому действию через эти 2 экземпляра обработчика.
В коде это будет:
class ActivityOne extends Activity{
Handler mHandler = new Handler( (message) -> makeChangesToLocalActivity(message) )
}
class ActivityTwo extends Activity{
Handler mHandler = new Handler( (message) -> makeChangesToLocalActivity(message) )
}
class WorkerClass{
// Each activity will pass its local handler when using the WorkerClass
Handler mActivityOneHandler,mActivityTwoHandler;
}
Можно ли, если WorkerClass содержит два разных обработчика, подключенных к одному потоку (UI)? Это не выглядит хорошо, но это все, о чем я мог думать.
не делайте лишних правок только для того, чтобы вывести свой вопрос на первую страницу
Я думал, что это нормально
Это кажется идеальным вариантом использования для местного широковещательного приемника.