В моем приложении и в одном подклассе Application (ApplicationEx class) есть много действий. Мое приложение отправляет и получает SIP-сообщения. Если получено новое сообщение, появляется обратный вызов сообщения, полученного в классе ApplicationEx. Из класса ApplicationEx как информировать пользовательский интерфейс (конкретную активность)? И для каждого сообщения неэффективно транслировать намерение по этой ссылке. Какие методы доступны для обновления интерфейса? и какой метод подходит для этого приложения?
Я использовал обработчик для обновления интерфейса. Чтобы обновить интерфейс, я переопределяю метод handleMessage для Handler.Callback.
Я бы рекомендовал зарегистрировать слушателя (т. OnDirtyViewListener
Создать OnDirtyViewListener
) и зарегистрировать его регистр Activity
. Затем, когда Application
сочтет View
загрязнен, выпалить вызов и иметь Acitvity
postInvalidate()
его верхний уровень View
.
OnDirtyViewListener
с методом onViewDirty(Object... args)
в вашем Application
. В onCreate(Bundle)
Activity
с onCreate(Bundle)
вызовите в registerOnDirtyViewListener(OnDirtyViewListener)
Activity
вызов метода registerOnDirtyViewListener(OnDirtyViewListener)
в Application
. Затем, когда Application
захочет обновить View
, оно просто вызовет метод onViewDirty()
слушателя. Это заставит Activity
делать то, что вы настраивали для метода (в основном, invalidating()
«грязное View
).
invalidate()
в корневомView
действия.