2016-05-02 10 views
0

Ich habe einen Code zum Senden einer Nachricht vom Dienst an die Aktivität. Aber ich sende nur eine Nachricht an die Aktivität, die den Dienst erstellt hat. Wenn ich die Aktivität und den Dienst noch aktiviere, muss ich die Nachrichten in neuer Aktivität abrufen. Wie?Kommunikation zwischen dem Dienst und einer beliebigen Aktivität

Ich benutze diesen Code:

Aktivität

public static Handler messageHandler = new MessageHandler(); 

... 


    public static class MessageHandler extends Handler { 
     @Override 
     public void handleMessage(Message message) { 
      int state = message.arg1; 
      switch (state) { 
      case HIDE: 
       progressBar.setVisibility(View.GONE); 
       break; 
      case SHOW: 
       progressBar.setVisibility(View.VISIBLE); 
       break; 
      } 
     } 
    } 

Dann habe ich Dienst Passieren der Handler erstellen.

Intent startService = new Intent(context, SERVICE.class) 
startService.putExtra("MESSENGER", new Messenger(messageHandler)); 
context.startService(startService); 

Wenn ich die Aktivität ändere, höre ich auf, Nachrichten zu empfangen. Ich kann eine MessageHandler-Klasse in jeder Aktivität erstellen? das funktioniert? Vielen Dank!

+0

Sie können Dienste implementieren http://StackOverflow.com/Questions/20594936/Communication-between-Activity-and-Service – sasikumar

+0

@sasikumar Ich nahm meinen Code von diesem Link. Von welcher Antwort sprichst du? –

+0

versuchen Sie das. http://StackOverflow.com/a/20595215/3981656 –

Antwort

0

Werfen Sie einen Blick auf die EventBus Bibliothek:

auch über Observer pattern lesen.

Hoffe es hilft!

Verwandte Themen