Глупый вопрос о жизненном цикле Android-активности - PullRequest
1 голос
/ 14 июня 2011

У меня есть активность + классы обслуживания.

Когда программа запускается, будет показана активность и служба будет запущена в onCreate методе активности.

Когда я нажал на кнопку HOME на виртуальной машине, появится HOME SCREEN, но активность пропала

  1. на данный момент, мне интересно, что программа, в которой ситуация-приостановлена ​​/ остановлена- ???
  2. что случилось с сервисом? (он все еще работает?)
  3. как я могу вывести активность на передний план с помощью сервиса?

Спасибо ...

Ответы [ 3 ]

3 голосов
/ 14 июня 2011

Хорошо в вашем случае для активности, если вы нажмете кнопку домой, она будет приостановлена.и, запустив его снова нажатием кнопки «Домой», он просто возобновляет его.

для службы: это зависит от того, как запускается ваша служба.

, если вы запускаете службу с помощью startService(намеренно), тогда ваша служба будет работать до тех пор, пока:

а) вы явно не остановите ее, вызвав stopService.

b) андроид убьет ее

в) вы позвонитеselfStop изнутри службы

если вы запустите службу с bindService () без вызова startService (), тогда служба будет:

a) работать до тех пор, пока действие не будет уничтожено(не приостанавливается, поэтому это означает, что он будет продолжать работать, если вы нажмете кнопку «Домой»), и это также означает, что вам нужно вызвать unbind ().

b) Android убивает его

c) доВы вызываете selfStop изнутри службы

, чтобы вывести активность на передний план. Вам нужно вызвать намерение и установить флаг, который, я полагаю, был запущен из истории или что-то в этом роде ... вам придется проверитьдокументы.

intent.addFlag (Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);<- я думаю, или этот -> FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY

1 голос
/ 14 июня 2011

См. Ниже поток действий, надеюсь, это поможет

The activity flow

0 голосов
/ 14 июня 2011

Состояние вашего ActivityService) может варьироваться в зависимости от того, что еще происходит.Если системе Android нужны ресурсы, возможно, она уничтожила ваши Activity (и, возможно, также Service), чтобы получить их.Вы должны прочитать:

Inна диаграмме Activity (также в ответе Марка Баккера) обратите особое внимание на поле с текстом «Другие приложения нуждаются в памяти».

...