0
我在ViewPager上有5個片段(它們全部在內存中,onPause()等包含Activity在屏幕上時不會調用)。自定義BroadcastReceiver將不會收到廣播
無論如何,我需要更新一個片段(GroupsListFragment)取決於另一個(TimetableListFragment)發生了什麼。我爲此使用了LocalBroadcastManager和BroadcastReceiver。
現在進入相關部分。 註冊的廣播意圖(嚴重略):
public class GroupsListFragment extends Fragment {
@Override
public void onResume() {
super.onResume();
mBroadcastManager = LocalBroadcastManager.getInstance(getActivity());
mBroadCastReceiver = new UpdateGroupsReceiver(this);
IntentFilter iFilter = new IntentFilter(UpdateGroupsReceiver.UPDATE_TIMETABLE_ACTION);
Log.d("GroupsListFragment", "Registering for receiver with intentfilter:[action=" + iFilter.getAction(0) + "]");
mBroadcastManager.registerReceiver(mBroadCastReceiver, iFilter);
}
}
發送廣播(再次嚴重略):
public class TimetableListFragment extends Fragment {
public void updateStatus() {
Intent intent = new Intent(UpdateGroupsReceiver.UPDATE_TIMETABLE_ACTION);
mBroadcastManager.sendBroadcast(intent);
Log.d(TAG, "Sending broadcast with intent:[action=" + intent.getAction() + "]");
}
}
的問題是,我UpdateGroupsReceiver
從來沒有收到它(onReceive()
是從來沒有發射) 。
任何有關可能是罪魁禍首的建議?
updategroupsreciever是什麼樣子的?編輯:NVM,可能不相關......但我假設你的日誌語句簽出? – JRaymond 2012-04-01 18:03:35
你在做什麼onPause()爲GroupsListFragment? B/C你說GroupListFragment可能暫停在這一點上。此外,它有**有史以來**現在在屏幕上出現? – JRaymond 2012-04-01 18:14:18
我假設,把this.registerReceiver(BroadCastReceiver,IntentFilter);在onCreate()方法中嘗試 – Selva 2012-08-08 07:09:54