Это происходит только на Android Oreo. Я использую Play Services 11.4.2. Я регистрирую геозоны с помощью GeofencingClient и метода addGeofences с pendingIntent для IntentService, который обрабатывает переходы между геозонами. Похоже, что намерение, отправленное игровыми сервисами, блокируется ОС при определенных условиях.
Система регистрирует следующее:
Background start not allowed: service Intent { cmp=my.app.id/my.package.struct.GeofenceTransIntentService (has extras) } to my.app.id/my.package.struct.GeofenceTransIntentService from pid=-1 uid=10154 pkg=my.app.id
как только я добавлю геозону в следующих ситуациях:
- когда я добавляю его после загрузки устройства
- когда я добавляю его после того, как приложение было удалено. В обоих случаях приложение фактически уже работает в фоновом режиме (поскольку я могу запустить код, который добавляет геозону), потому что я слушаю PROVIDERS_CHANGED, BOOT_COMPLETED.