Моей служба, как правило, начатой BroadcastReceiver для RECEIVE_BOOT_COMPLETED, и реализуются с флагом START_STICKY следующим образом:Сделать независим от деятельности
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return Service.START_STICKY;
}
Так во многих случаях, когда пользователь запускает приложение, то служба будет уже работает в фоновом режиме. Затем моя активность привязывается к нему для чтения информации из службы.
Однако, когда пользователь затем уничтожает действие (заканчивая приложение), моя служба, которая уже была запущена, также уничтожается, а затем перезапускается через start_sticky. Это приводит к некоторой информации, которую я сохраняю в сервисе, чтобы быть потерянным.
Есть ли способ сохранить мой экземпляр службы, и просто чтобы мои действия приходят и уходят, привязаны к нему по мере необходимости?
Вы, вероятно, можно использовать 'Service # onDestroy' осуществлять очистку, и сохранить информацию, которую Вы иначе потеряли бы. См.: Http://developer.android.com/reference/android/app/Service.html#onDestroy() – blad
"затем уничтожает действие (путем прекращения приложения)" .. пользователь не может и не разрушает действие, ни прекратить приложение. Все, что он может сделать, это закончить активность. Android вызовет onPause(), возможно, onStop() и, возможно, Activity.onDestroy() в какой-то момент в будущем. Но если ваша служба запущена, приложение не будет прекращено. – rupps
@rupps: «пользователь не может и не разрушает действие» - нажатие BACK по умолчанию уничтожает действие. «ни прекратить приложение» - моя интерпретация этого заключается в том, что OP означает «завершить процесс», например, через список недавних задач. – CommonsWare