2014-10-01 9 views
1

У меня есть 2 вопроса относительно метода OnDestroy() из службыOnDestroy() в Android службы

1.Will метода OnDestroy() из службы можно назвать, если услуга будет убит системой из-за отсутствия памяти.

2.Убедитесь, что вызов функции onDestroy() будет вызван, если служба будет убита, потому что приложение, которое запустило службу, было отброшено пользователем на экране повторных приложений.

ответ

2

Первый вопрос.

Основываясь на моем предыдущем опыте и Android dev docs. onDestroy() метод службы вызывается, даже если служба убита системой. Документация Google Android dev ниже.

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

Второй вопрос.

Если вы хотите убить службу при закрытии приложения, то да. Анероидные службы работают на фоне и обычно не убиваются, когда вы уничтожаете свое приложение.

+0

Я не хочу, чтобы мое служение было убито (при любых обстоятельствах), пока я не позвоню stopService(). Возвращает START_REDELIVER_INTENT в onStartCommand() единственный способ сделать это? – DrkStr

+0

Если вы начинаете услуги, вы можете определить, когда эта служба должна быть остановлена. Но если устройство перестанет обслуживать управление памятью, вы можете вызвать службу по методу onDestroy(). –

+0

, поэтому я просто вызываю startService (намерение) в onDestroy()? – DrkStr

3
  1. Когда услуга будет расторгнута системой onDestroy, будет вызываться, но когда ваш процесс подачи заявки прекращен, onDestroy не может быть вызван.

  2. onDestroy() будет называться услугой IF прекращается в результате. (это не всегда так) См. это discussion для получения дополнительной информации.

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