ViewPagerに5つのフラグメントがあります(これらはすべて常にメモリ内にあり、onPause()が含まれています。カスタムBroadcastReceiverはブロードキャストを受信しません
とにかく、別のもの(TimetableListFragment)で起こっていることに応じて、1つのフラグメント(GroupsListFragment)を更新する必要があります。私は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
GroupsListFragmentのonPause()で何をしますか?この時点でGroupsListFragmentが一時停止されている可能性があります。また、現時点で**画面に**表示されていますか? – JRaymond
私は、this.registerReceiver(BroadCastReceiver、IntentFilter)を置くと仮定します。 onCreate()メソッドで試してみてください – Selva