Как сделать услугу в этом случае? - PullRequest
0 голосов
/ 04 мая 2011

Итак, у меня есть класс, который прослушивает входящие вызовы, я хочу сделать сервис для всего моего приложения, чтобы получать вызовы, даже когда я не в пользовательском интерфейсе приложения. Как вызвать этот класс (широковещательный приемник). Я использовал "sendBroadcast" и у меня есть FC.

sendBroadcast(new Intent(context, IncomingCallReceiver.class));

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 04 мая 2011

В вашем случае я бы использовал следующий подход:

  • Создайте Service и запустите его с вашего Activity (вы упомянули, что у вас есть несколько приложений, поэтому запуск первого из них может такжеЗапустите службу).
  • Убедитесь, что служба не работает вечно, поэтому остановите службу, когда она вам больше не нужна (последнее из ваших приложений завершено).Служба может прекратить самовывоз даже без Активности, позвонив по номеру stopSelf().Обратите внимание, что система также может прекратить работу вашей Службы и запретить ее постоянную работу.
  • Создайте закрытый класс в Службе, который расширяет BroadcastReceiver, и зарегистрируйте его для Контентов, которые вы хотите отслеживать с помощью функции Службы registerReceiver().
  • Как только вы получите желаемое намерение, вы можете вызвать некоторую сервисную функцию из BroadcastReceiver onReceive().Например, вы можете отправитьBroadcast () с использованием некоторого пользовательского намерения, распознаваемого вашими приложениями.
  • Когда служба остановлена, убедитесь, что вы отменили регистрацию расширения BroadcastReceiver, используя функцию службы unregisterReceiver().

ОБНОВЛЕНИЕ:

...