2016-06-30 32 views
0

Während ich für meine App bin Codierung ich auf ein interessantes Problem gekommen bin, dieWie Empfang von Broadcast-Nachrichten Super-Aktivität des Rundfunkempfänger zu verhindern, während der Empfänger Kind Aktivität in Android registriert ist

ist habe ich 5 Aktivitäten die von einer gemeinsamen Aktivität

AppCompatActivity 
     ^
     | 

CustomSuperActivity (Implemented to take advantage of the common actionbar functionalities) 

     ^
     | 
Activity1 Activity2 ...... Activity4  MailActivity 

CustomSuperActivity hat eine Implementierung des Rundfunkempfängers abgeleitet sind, die die ActionBar mailCount aktualisiert werden, da es neue Mails vom Server empfängt

Hier ist die Implementierung

protected BroadcastReceiver mailReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     unreadMailCount ++; 

     if (unreadMailCount > 0) { 
      unreadMailCountTV.setVisibility(View.VISIBLE); 
      unreadMailCountTV.setText(String.valueOf(unreadMailCount)); 
     } else { 
      unreadMailCountTV.setVisibility(View.GONE); 
     } 
    } 
}; 

Und dieser Empfänger diese eingetragene und nicht eingetragene auf onResume() bzw. onPause() -Methoden des CustomSuperActivity.

Jetzt ist das Problem, dass der mailActivity eine Chat-Schnittstelle hat, die mit neu empfangenen Mail (wie whatsapp) aktualisiert werden muss ..

Wie kann ich meine mailActivity implementieren, so dass die CustomParentActivity nicht die Sendung erhalten würden während die mailActivity aktiviert ist und der Empfänger von mailActivity die Übertragung empfängt und die Mail-Benutzeroberfläche aktualisiert?

Wichtig: möchte ich mailActivity von CustomSuperActivity, um erben die Aktionsleiste Funktionalitäten im mailActivity

Jede Hilfe oder Begriff zu erreichen wäre sehr

Antwort

1

Ich denke, die beste Option für dieses Szenario geschätzt werden wäre es, den mailReceiver in der onResume von mailActivity zu entfernen, mailReceiver in pause neu zu registrieren, und einen anderen BroadcastReceiver in Ihrer mailActivity für die Empfängerimplementation zu haben, die Sie hier anders behandeln wollen.