2009-09-23 2 views
13

Je rencontre un problème lors de l'envoi de données de Service à Activité via Notification, je clique sur une Notification et une Activité invoquées mais lorsque j'essaie d'ajouter certains paramètres par bundle, je n'arrive pas à obtenir les paramètres qui a appelé l'intention, je suis passé par le lien How to send parameters from a notification-click to an activity?Envoi de données du service à l'activité

Mais toujours pas de chance.

Le même problème s'est-il produit avec quelqu'un d'autre?

Merci d'avance.

+0

Comment envoyer des données du service à l'activité? –

Répondre

18

Vous devez également modifier le fichier manifeste.

Voici l'exemple qui fonctionne:

Ces variables et méthodes sont membres de la classe de service:

public static final String MOVEMENT_UPDATE = "com.client.gaitlink.AccelerationService.action.MOVEMENT_UPDATE"; 
    public static final String ACCELERATION_X = "com.client.gaitlink.AccelerationService.ACCELERATION_X"; 
    public static final String ACCELERATION_Y = "com.client.gaitlink.AccelerationService.ACCELERATION_Y"; 
    public static final String ACCELERATION_Z = "com.client.gaitlink.AccelerationService.ACCELERATION_Z"; 

private void announceAccelerationChanges()//this method sends broadcast messages 
    { 
     Intent intent = new Intent(MOVEMENT_UPDATE); 
     intent.putExtra(ACCELERATION_X, accelerationX); 
     intent.putExtra(ACCELERATION_Y, accelerationY); 
     intent.putExtra(ACCELERATION_Z, accelerationZ); 

     sendBroadcast(intent); 
    } 

Et ce sont les méthodes de l'activité principale:

Vous devez registre récepteur dans la méthode onResume:

Ceci est t La partie du fichier AndroidManifest.xml qui doit être définie pour recevoir les messages de diffusion:

<activity android:name=".GaitLink" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 

       <action android:name="com.client.gaitlink.CommunicationService.action.ACTIVITY_STATUS_UPDATE" /> 

      </intent-filter> 
     </activity> 
+0

J'ai essayé ceci mais il ne fonctionne pas comme prévu .. j'ai écrit des états de notation mais n'est pas affichage dans la méthode onRecieve .what mauvais je peux faire je fais la même chose que dite! – Sam97305421562

+0

Le service diffuse-t-il le message? Le BroadcastReceiver a-t-il été démarré et exécuté dans l'activité? Avez-vous ajouté un filtre d'intention dans AndroidManifest.xml? –

+0

J'ai ajouté BroadcastReceiver dans le fichier AndroidManifest.xml, oui le service fait la diffusion comment puis-je confirmer que le BroadcastReceiver a été démarré. – Sam97305421562

Questions connexes