从Fragment到Activity的Android LocalBroadcastManager没有收到消息

时间:2016-05-19 09:52:04

标签: android android-fragments android-broadcastreceiver localbroadcastmanager

我想从FragmentActivity发送消息(不是Fragment父{1}},只是另一个消息。

实际上我从Activity到同一Service做同样的事情,效果很好。

这是我的代码:

Activity

Fragment

private void sendBroadcastMessage() { Intent intent = new Intent("my_event"); // add data intent.putExtra("message", "test"); LocalBroadcastManager.getInstance(getActivity()).sendBroadcast(intent); }

Activity

我刚刚关注了那个伟大的post,但它仅适用于private BroadcastReceiver myReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { // Extract data included in the Intent String message = intent.getStringExtra("message"); } }; @Override protected void onPause() { // Unregister since the activity is not visible LocalBroadcastManager.getInstance(this).unregisterReceiver(myReceiver); super.onPause(); } @Override protected void onResume() { super.onResume(); LocalBroadcastManager.getInstance(this).registerReceiver(myReceiver, new IntentFilter("my_event")); } Service

我认为它与Activity中的Context有关,也许Fragment不正确......

有什么想法吗? 感谢。

1 个答案:

答案 0 :(得分:-1)

在onCreate中注册广播并在活动的onDestroy中取消注册。

在您的情况下,它可能会在onPause中取消注册。所以在onDestroy而不是onPause中取消注册。

谢谢,