Android O - Ancien service de premier plan au démarrage fonctionnant toujours?

Donc, avec Android O, vous avez besoin de votre service en cours d'exécution comme un avant-plan service si vous souhaitez recevoir plus que juste un peu de l'emplacement des mises à jour à l'heure.

J'ai remarqué que l'ancienne méthode de démarrage d'un premier plan de service ne semble pas fonctionner sur O.
c'est à dire

startForeground(NOTIFICATION_ID, getNotification());

Selon les changements de comportement guide ici:
https://developer.android.com/preview/behavior-changes.html

La NotificationManager.startServiceInForeground() méthode commence par un premier plan de service. L'ancienne façon de commencer un premier plan de service ne fonctionne plus.

Si la nouvelle méthode ne fonctionne que lorsque le ciblage de O, il semble que l'ancienne méthode qui semble fonctionner sur un joint périphérique si le ciblage de O ou pas.

Modifier
Y compris par exemple:

Google exemple de projet LocationUpdatesForegroundService a effectivement un exemple de travail où vous pouvez voir le problème de première main.
https://github.com/googlesamples/android-play-location/tree/master/LocationUpdatesForegroundService

La startForeground méthode semble fonctionner sans problème si le ciblage et la compilation à l'encontre de l'API de niveau 25 OU le ciblage et la compilation de contre O (comme indiqué ici: https://developer.android.com/preview/migration.html#uya)

Donc, à reproduire:

  1. Configurer l'application gradle comme mentionné dans le précédent lien
  2. Ouvrez l'application
  3. Demande de l'emplacement des mises à jour
  4. Fermer l'application (soit via le bouton de retour ou le bouton d'accueil)

Service est en cours d'exécution dans le premier plan (indiqué par l'icône de notification de l'ombre). Emplacement des mises à jour sont à venir à travers comme prévu (toutes les 10 secondes), même sur un dispositif en cours d'exécution O. Ce que je suis en manque ici?

source d'informationauteur the_new_mr

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *