2016-06-30 48 views
0

雖然我編碼爲我的應用我遇到了一個有趣的問題,就是如何防止接收廣播信息的超級活動的廣播接收器,而孩子活動的接收器採用的是Android註冊

我有5個活動其由一個共同的活動

AppCompatActivity 
     ^
     | 

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

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

CustomSuperActivity具有廣播接收機的一種實現,因爲它從服務器

這裏接收新的電子郵件將更新動作條mailCount衍生是實施

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); 
     } 
    } 
}; 

而這個接收器分別在CustomSuperActivity的onResume(),onPause()方法上註冊和註銷。

現在的問題是,mailActivity有一個聊天界面,必須與新接收的郵件(就像WhatsApp的)更新..

如何實現我的mailActivity使得CustomParentActivity不會接收廣播而mailActivity打開並且mailActivity的接收器接收廣播並更新郵件UI?

重要:我想繼承CustomSuperActivity mailActivity以達到操作欄功能在mailActivity

任何幫助或概念將高度讚賞

回答

1

對於這種情況,我認爲最好的選擇將在mailActivity的onResume中取消註冊mailReceiver,在暫停時重新註冊mailReceiver,並在您的mailActivity中爲您希望在此處以不同方式處理的接收者實現部署不同的BroadcastReceiver。