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