2011-05-04 4 views
0

Donc, j'ai une classe qui écoute les appels entrants, je veux faire un service à toute mon application pour recevoir des appels même lorsque je ne suis pas dans l'interface utilisateur de l'application. Comment déclencher cette classe (récepteur de diffusion). J'ai utilisé "sendBroadcast" et j'ai un FC.Comment faire un service dans ce cas?

sendBroadcast(new Intent(context, IncomingCallReceiver.class)); 

Nous vous remercions de votre aide.

+0

ne suis pas sûr, mais je pense que le récepteur de diffusion reçoit les événements même votre application est fermée ... – Farhan

+0

@Farhan: non, je l'ai vérifié en ce moment et cela ne fonctionne pas. Une idée de comment résoudre ce problème? – androniennn

+0

oui le récepteur de diffusion reçoit un événement même si vous avez fermé votre application. – Sujit

Répondre

1

Dans votre cas, j'utiliser l'approche suivante:

  • Créer Service et démarrer à partir de votre Activity (vous avez dit que vous avez plusieurs applications, en commençant donc premier d'entre eux peuvent également démarrer le service).
  • Assurez-vous que le service ne fonctionne pas pour toujours, arrêtez donc le service lorsque vous n'en avez plus besoin (la dernière de vos applications est terminée). Le service peut se terminer même sans activité en appelant le stopSelf(). Veuillez noter que System peut également mettre fin à votre service et l'empêcher de fonctionner pour toujours.
  • Créez une classe privée dans Service qui étend BroadcastReceiver et enregistrez-la pour les intentions que vous souhaitez surveiller à l'aide de la fonction de service registerReceiver().
  • Une fois que vous avez reçu l'intention voulue, vous pouvez appeler une fonction de service depuis BroadcastReceiver onReceive(). Par exemple, vous pouvez envoyer Broadcast() en utilisant des intentions personnalisées reconnues par vos applications.
  • Lorsque le service est arrêté, assurez-vous de désenregistrer l'extension BroadcastReceiver à l'aide de la fonction de service unregisterReceiver().

MISE À JOUR:

+0

Avez-vous s'il vous plaît un lien de guide qui parle de cette étapes? Je vous remercie. – androniennn

+0

@androniennn - Je mettrai à jour ma réponse demain matin avec des liens/exemples utiles. – Zelimir

Questions connexes