Ответ 1
GCMIntentService (расширяет GCMBaseIntentService) не получает уведомлений, если приложение не работает.
Да, будет. Остальная часть вашего вопроса, однако, имеет мало общего с тем, работает ли приложение, а скорее, было ли оно раньше пользователем. То, что слово "остановлено" означает в приведенном вами параграфе, не "не работает", а представляет собой состояние, в котором находится приложение:
-
когда он впервые установлен, прежде чем что-то вручную вызовет компонент (например, пользователь запускает действие)
-
после того, как пользователь принудительно остановит приложение, пока что-то вручную не вызовет компонент (например, пользователь запускает действие)
(и я действительно очень хочу, чтобы они придумали более своеобразное прилагательное, чем "остановлено" для этого...)
Есть ли способ обойти эту настройку?
Нет. Если пользователь принудительно останавливает ваше приложение, они указывают, что они не хотят, чтобы ваше приложение запускалось снова, по какой-либо причине, пока они не запустили его вручную. Ваша цель - дать пользователю никаких оснований для принудительного остановки вашего приложения. Обратите внимание, что я имею в виду "force-stop" (т.е. Нажмите кнопку "Force Stop" из "Настройки" ) - обычные диспетчера задач или прокрутка из списка "Новые задачи" в Android 4.x не имеют этого эффекта.