0

我想从 aFragment向a 发送消息Activity(不是Fragmentparent 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

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

我刚刚关注了那个很棒的帖子,但它只适用ServiceActivity

我认为这与Contextfrom the 有关系Fragment,也许getActivity()不是正确的方法......

有任何想法吗?谢谢。

4

1 回答 1

-1

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

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

谢谢,

于 2016-05-19T10:38:29.387 回答