2011-08-23 11 views
1

Dans mon application, j'utilise le récepteur de diffusion pour détecter les changements d'alerte de proximité enregistrés et enregistrés auparavant. Mais lorsque l'alerte de proximité est reçue sur le récepteur de diffusion, j'ai besoin de faire ce que mon application fait. Je crée un service lorsque l'application s'ouvre pour la première fois et je pense utiliser ce service pour faire ce travail lorsque la diffusion reçoit des appels de la part de BroadcastReceiver car même si l'application est détruite par le système d'exploitation, je veux que mon application soit fonctionnelle. Quelle est la meilleure pratique pour ce genre de situation, suis-je sur la bonne voie?Meilleure pratique avec la combinaison Récepteur de diffusion et service

Edit: Je suis également en utilisant le filtre intention

<intent-filter> 
    <action android:name="android.intent.action.BOOT_COMPLETED" /> 
</intent-filter> 

BOOT_COMPLETED à réinscrire mon BroadcastReceiver si l'appareil de démarrage de l'utilisateur.

+0

S'il vous plaît marquer comme réponse si elle a résolu votre problème .. –

Répondre

1

Oui vous êtes sur la bonne voie droite

Sur BootCompleted vous pouvez lancer un service dans la méthode OnReceive() de BroadcastReceiver class.As lorsque téléphone Andoid commencera il l'intention de diffuser. ! Ne pas Annule l'enregistrement de cette émission en application complète

+0

Maintenant, broadcastreciever seront inscrits sur bootup mais toutes mes alertes de proximité seront allés probablement recieve coutume quoi que ce soit parce que je Registerd alertes avec ma demande mais l'application de bootup ne sera pas présente (j'ajoute toutes mes alertes de proximité au démarrage de l'application) donc mes proximityAlerts. Ma demande doit être réouverte pour réenregistrer les alertes de proximité ou je devrais les réenregistrer ailleurs? –

+0

onBootup vous pouvez démarrer une application aussi – Sameer

+0

ouais que l'utilisateur fera face à l'interface utilisateur de l'application, je pense que ce n'est pas une chose qu'ils veulent. Je veux établir cela en arrière-plan –

0

Je sais que le fil est vieux, mais:

  1. N'oubliez pas l'autorisation pour le démarrage complet android.permission.RECEIVE_BOOT_COMPLETED si vous utilisez l'intention filtre BOOT_COMPLETED. Cela dépend de la logique de votre application MAIS si votre logique nécessite le démarrage d'un service d'arrière-plan permanent qui exécute une certaine logique en arrière-plan (écoute des données de capteur, etc.), vous pouvez démarrer le service et d'autres initialisations nécessaires votre classe d'application. Cela vous promettra qu'une fois votre onReceive du BroadcastReceiver appelé (même après le démarrage) toutes vos initialisations seront prêtes car votre application onCreate a déjà été appelée.

Questions connexes