Android-активность и сервис - после паузы, после остановки - PullRequest
4 голосов
/ 12 июля 2011

Допустим, действие A создано, а затем A запускает службу S и связывает себя с S. S уведомляет A об обновлениях, которые приведут к изменению состояния A. Что происходит с A и S после того, как Android приостановит или остановит A?

Например:

  • Приостановляет ли пауза A автоматическую привязку его от S (таким образом останавливая S, еслиA является последним, что связано с ним?)
  • Обновления из S вызывают возобновление A?
  • Обновления из S никогда не передаются в A и не возникает ошибка?
  • Может ли S осознать, что A приостановлен или остановлен?(например, путем вызова чего-то вроде A.isAsleep())

Кроме того, Как мне справиться с ситуацией, чтобы произошла «правильная вещь»? Отвязывать ли службы вonPause () и перепривязать onResume ()?

1 Ответ

2 голосов
/ 12 июля 2011

(A) будет не связан с (S) onPause, но если вы не вызывали метод unbind, я думаю, вы получите утечку памяти.

Если вы не перепривязали (A) к (S) onResume (), (A) заметят, что знают (S), если действие не воссоздано.

Зависит от того, как вы отправляете обновления,NPE могут произойти наверняка, если вы вообще указали (A), и он будет уничтожен во время паузы.

(S) будет знать, что (A) был приостановлен, если у вас есть способ сообщить об этом(S), как вы сделали.

И да, у вас все в порядке.Вы должны связать и отменить привязку onResume и onPause.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...