0

Je dois collecter des données GPS, les enregistrer dans la base de données, puis les envoyer au backend chaque minute. Et je veux juste m'assurer que le mode Doze ne gâchera pas les choses.Android Doze: affectera-t-il l'ensemble de l'application ou ses processus séparément?

  1. Supposons que je lance mon service de premier plan et mettons en œuvre il rappel onLocationChanged. Dois-je faire tout cela (collecte/stockage/envoi) dans un service de premier plan juste pour être sûr que Doze permettra d'utiliser le GPS/Internet?

  2. Si je veux stocker/envoyer des données ailleurs, par ex. dans un BroadcastReceiver, comment puis-je être sûr que mon BroadcastReceiver est prêt à gérer les données et n'est pas endormi?

  3. Il y a un bogue dans M Android, ce qui rend les services de premier plan affectées par le mode Doze: https://stackoverflow.com/a/37869501/3210556

    Un woakaround possible est de lancer un service de premier plan dans un processus séparé.

    En supposant qu'il existe un service de premier plan dans l'application, qu'est-ce qui n'est pas affecté par doze?

    • Le service de premier plan lui-même?
    • Le processus associé au service de premier plan?
    • L'ensemble de l'application?

Merci.

Répondre

1

Si votre téléphone entre dans Doze tout est mis en veille (GPS, Alarmes, Internet, etc) et est reporté à une fenêtre de maintenance à un moment donné (selon la version de l'utilisateur Android).

Si votre application doit faire quelque chose à un moment donné, vous pouvez demander à white list votre application. Vous pouvez consulter les cas d'utilisation valides pour la liste blanche here qui semble que votre cas pourrait être valide