Использовать один обработчик для двух действий в Android?

У меня есть два действия в моем приложении, скажем, 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)? Это не выглядит хорошо, но это все, о чем я мог думать.

Это кажется идеальным вариантом использования для местного широковещательного приемника.

Ricardo Costeira 07.11.2018 17:53

не делайте лишних правок только для того, чтобы вывести свой вопрос на первую страницу

Tim 08.11.2018 09:40

Я думал, что это нормально

Themelis 08.11.2018 10:05
1
3
197
0

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