Android O: ¿el servicio en primer plano de inicio antiguo sigue funcionando?

Por lo tanto, con Android O, debe tener su servicio ejecutándose como un servicio en primer plano si desea recibir más que unas pocas actualizaciones de ubicación por hora.

Noté que el antiguo método para iniciar un servicio en primer plano parece funcionar en O.

startForeground(NOTIFICATION_ID, getNotification());

De acuerdo con la guía de cambios de comportamiento aquí:https://developer.android.com/preview/behavior-changes.html

El método NotificationManager.startServiceInForeground () inicia un servicio en primer plano. La antigua forma de iniciar un servicio en primer plano ya no funciona.

Aunque el nuevo método solo funciona cuando se apunta a O, parece que el método anterior todavía parece funcionar en un dispositivo O, ya sea que apunte a O o no.

Editar Incluyendo ejemplo:

El proyecto de ejemplo de Google LocationUpdatesForegroundService en realidad tiene un ejemplo de trabajo donde puede ver el problema de primera mano.https://github.com/googlesamples/android-play-location/tree/master/LocationUpdatesForegroundService

El método startForeground parece funcionar sin problemas si la orientación y la compilación contra el nivel API 25 O la orientación y la compilación contra O (como se indica aquí:https://developer.android.com/preview/migration.html#uya)

Entonces, para reproducir:

Configure la aplicación gradle como se menciona en el enlace anteriorAbre la aplicaciónSolicitar actualizaciones de ubicaciónCerrar aplicación (ya sea a través del botón de retroceso o el botón de inicio)

El servicio se está ejecutando en primer plano (se muestra mediante el icono en la sombra de notificación). Las actualizaciones de ubicación se realizan según lo esperado (cada 10 segundos) incluso en un dispositivo que ejecuta O. ¿Qué me falta aquí?

Respuestas a la pregunta(7)

Su respuesta a la pregunta