Я разрабатываю приложение для обмена сообщениями, и мне нужно, чтобы моя служба продолжала работать в фоновом режиме, даже если приложение было закрыто, но не отображало уведомление на панели навигации и запускалось при запуске телефона и перезапускалось, когда он закрыт по какой-либо причине, я знаю, что этот вопрос задавался раньше, но я не могу найти ничего, чтобы сделать это, я просто хочу, чтобы это было похоже на услуги WhatsApp, Facebook или bbm, заранее спасибо.
Держите службу в фоновом режиме, не показывая уведомления
Ответы (1)
Мне нужно, чтобы моя служба продолжала работать в фоновом режиме, даже если приложение было закрыто, но без отображения уведомления на панели навигации и запускалось при запуске телефона и перезапускалось, когда оно было закрыто по какой-либо причине.
Это не совсем возможно.
Вы можете вернуть START_STICKY
или START_REDELIVER_INTENT
из метода onStartCommand()
вашего сервиса. Android по-прежнему будет время от времени завершать ваш процесс из-за устаревания и нехватки памяти, но в конечном итоге Android перезапустит эти службы. Какой процент времени будет работать ваш процесс, будет зависеть от множества факторов, не последним из которых является объем системной оперативной памяти на устройстве Android.
Более того, вы можете использовать Google Cloud Messaging (GCM) для доставки ваших сообщений в ваше приложение. Таким образом, вам не нужно, чтобы служба работала все время. Ваше приложение может получить контроль над получением сообщения, выполнить некоторую работу для этого сообщения, а затем уйти.
Я просто хочу, чтобы это было похоже на услуги WhatsApp, Facebook или bbm.
BlackBerry Messenger использует startForeground()
и в результате имеет значок в строке состояния а>.