2013-05-08 2 views
0

Можно ли программно нажать кнопку «Назад» на андроиде через сервис?нажатие кнопки «Назад» на андроиде через сервис

Я знаю, что могу переопределить метод onBackPressed(), если я был в Activity, но я ищу решение, которое работает для службы, работающей в фоновом режиме.

ответ

1

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

+0

Проблема в том, что мне нужна служба для имитации обратного пресса, поскольку приложение пытается автоматизировать обратные нажатия в конкретной ситуации. Использует ли деятельность единственный способ сделать это? – vsx06

+0

Вы можете попробовать это решение n0sferat0k в http://stackoverflow.com/questions/4967178/how-to-generate-key-presses-programmatically-android. Я не пробовал и не рекомендую этого. –

+0

Было ли решение работать? –

1

Возможно ли программно нажать кнопку «Назад» на андроиде через сервис?

No.

Я знаю, что могу переопределить метод onBackPressed(), если бы я был в деятельности,

Это не имеет ничего общего с «программным нажмите кнопку назад» ,

Я ищу решение, которое работает для службы, работающей в фоновом режиме.

Ваша служба может отправить сообщение для вашей деятельности, которая вызывает активность называть finish(). Вы можете использовать любое из следующих действий для такого сообщения:

  • LocalBroadcastManager
  • шину событий, как Отто
  • регулярной трансляции Intent
  • Messenger
  • т.д.

Однако, если вы ожидаете, что сможете атаковать действия ot ее приложения, заставляя их позвонить по телефону finish(), это невозможно.

+0

Приложение под названием SideBar (в Play Маркете) реагирует на нажатия клавиш. Это функция переднего плана, которая добавляет представление в виде оверлея системы и удаляет вид при нажатии клавиши назад. Я хотел бы знать, как это делается. – Phat7

+0

@ Phat7: Это хорошо, но это не имеет никакого отношения к этому вопросу. Не стесняйтесь открывать новый вопрос. – CommonsWare

+0

@CommonsWare: Не могли бы вы объяснить, почему мы не можем выполнить кнопку возврата в службе? – Jame