分三段的广播接收机仅发送一次

时间:2018-10-05 12:55:18

标签: android

我正在创建从活动到片段的发送广播。但是在我的情况下,接收方呼叫了3次,因为我只发送一次广播。请帮助

在这里,我正在片段中注册广播

 @Override
public void onResume() {
    super.onResume();
    getActivity().registerReceiver(broadcastReceiver, new IntentFilter("example.com"));

}

@Override
public void onPause() {
    super.onPause();
    getActivity().unregisterReceiver(broadcastReceiver);
}

还有片段中的接收者

 BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        // Here I am receiving the data and want to update the list in 
        //my fragment
  };

发送广播

Intent intent = new Intent("example.com");
intent.putExtra("data","any_data");
sendBroadcast(intent);

1 个答案:

答案 0 :(得分:0)

您必须始终将Action设置为Intent,如下所示,

Intent intent = new Intent();
intent.setAction("action_type");
sendBroadcast(intent);  

然后在您的接收器中添加以下行:

BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
    if(intent.getAction("action_type")) {
      // Write your code here now.
    }
};

希望它能起作用。