3

我已经开始在我的应用程序中使用自定义意图,但遇到了一些问题。

当我发送自定义意图时,我注册了一个广播接收器,并且我捕捉到了这个意图没有问题。

但是,当我再次发送意图时似乎出现了问题,广播接收器似乎注册了意图的两个事件,依此类推,所以如果第三次发送意图,我会收到 3 次。

这在我的应用程序中造成了重大问题,想知道这是否正常,有什么方法可以解决吗?

这是我的代码:


发送意图:

Intent i = new Intent();
i.setAction(SIP_INCOMING_CALL_CANCEL_INTENT);
sendBroadcast(i);

要接收 Intent:

sipIncomingListener = new BroadcastReceiver(){

   @Override
   public void onReceive(Context context, Intent intent) {
      String action = intent.getAction(); 

      if(CallDialogActivity.SIP_INCOMING_CALL_ANSWER_INTENT.equals(action)){
         Log.d("SIPENGINE", "CALL CONNECTED SENT FROM INITINCOMINGLISTENER()");
      }  
   };

IntentFilter filter = new IntentFilter(CallDialogActivity.SIP_INCOMING_CALL_CANCEL_INTENT);
registerReceiver(sipIncomingListener, filter);

有没有办法确保 Intent 只被触发一次?

4

1 回答 1

2

我不确定,为什么你有这个问题,但你确定你需要一个 Broadcast(Receiver) 来处理意图吗?你能解释一下,你为什么这样做?

回到你的问题:你能提供一个简单的简约项目吗?我认为问题不在您提供的代码中。

于 2010-03-01T13:40:50.243 回答