2015-01-19 2 views
0

Например, я активировал деятельность, есть кнопка в действииВозможно ли инициировать событие onclick активности в фоновом режиме?

И затем я запускаю службу фона, эта служба проверяет, находится ли целевая активность на переднем плане, а затем вызывает событие щелчка этой кнопки.

Возможно ли это?

+0

теоретически, если у вас есть контекст и экземпляр кнопки, то да. Вы используете yourBtn.performClick(); –

ответ

2

Зачем вам запускать событие щелчка активности, а не уведомлять активность о его результатах? Попытайтесь использовать локальные трансляции, которые отправляются из службы в действие. Регистры активности для этой трансляции и в своем onReceive из BroadcastReceiver вы вызовете свой метод onClick или любой другой метод по вашему выбору. Получатель зарегистрирован в onResume и незарегистрирован в , чтобы гарантировать, что активность действительно видна.

Я бы не рекомендовал использовать прямую зависимость от вашей деятельности, так как это может вызвать IllegalStateExceptions, если ни при каких обстоятельствах ваша деятельность не запущена или вообще не отображается.

3

В этом случае я могу настоятельно рекомендовать использовать концепцию eventbus, например, «otto by square». вы подпишетесь на мероприятие от активности, которое будет поддерживать модульность и позволит вам выполнять эту функцию

Смежные вопросы