1

J'ai une application qui permet de répondre aux notifications via Notification.Actions. Donc, fondamentalement, j'ai une intention En attendant cetteL'action de notification avec le service dans PendingIntent ne fonctionne pas lorsque l'application n'est pas en cours d'exécution

Intent actionIntent = actionIntent = new Intent(this, NotificationActionIntentService.class); 

actionPendIntent = PendingIntent.getService(
     this, 
     requestCodeBtn, 
     actionIntent, 
     PendingIntent.FLAG_UPDATE_CURRENT 
); 

Ce que je fais dans mon NotificationActionIntentService est un HttpRequest à mon signalerai la mise à jour nécessaire pour faire.

REMARQUE: Lorsque l'application est au premier plan, tout fonctionne correctement.

Voici la chose:

Après avoir reçu la GCM, lorsque je presse le Notification.Action immédiatement, tout fonctionne toujours très bien. Mais, lorsque j'attends 30 secondes après avoir reçu le GCM avant d'appuyer sur Notification.Action, la requête réseau n'est pas terminée. Les journaux montrent seulement qu'il a fait une demande de réseau. Mais je n'ai jamais de réponse. Lorsque je regarde les journaux dans mon serveur BE. Je ne reçois pas la demande de réseau.

Mais quand je lance l'application manuellement, le réseau est alors repris. Il semble que la demande réseau soit en pause puis reprise lorsque l'application est déjà en avant-plan. (Je ne veux pas ce comportement parce que je veux exécuter juste en arrière-plan)

MISE À JOUR: Après avoir appuyé sur la Notification.Action, après une minute ou deux (sans ouvrir l'application) J'ai reçu java.net.ConnectException: Failed to connect dans mes journaux . (Note: j'ai une connexion internet). Il semble que l'application ne puisse pas se connecter au réseau alors qu'elle fonctionne en arrière-plan uniquement.

PS: Im en utilisant Rénovation 2 dans la création de ma demande de réseau. Aussi, j'utilise Android N comme un appareil de test.

+0

testez-vous sur Android O? – Benjamin

+0

non, j'utilise Android N @ Benjamin – YellowJ

+0

Pourriez-vous vous connecter le cycle de vie du service d'arrière-plan, pour s'assurer qu'il n'est pas arraché pour des raisons magiques d'économie de batterie, avant que votre demande se termine? – Lukasz

Répondre