Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓系统-是否打算以某种方式递增?_Android_Android Intent_Broadcast_Broadcastreceiver_Intentfilter - Fatal编程技术网

Android 安卓系统-是否打算以某种方式递增?

Android 安卓系统-是否打算以某种方式递增?,android,android-intent,broadcast,broadcastreceiver,intentfilter,Android,Android Intent,Broadcast,Broadcastreceiver,Intentfilter,我已经开始在我的应用程序中使用自定义意图,我遇到了一些问题 当我发送一个定制的意图时,我注册了一个广播接收器,我捕捉到了意图,没有问题 然而,当我再次发送意图时,问题似乎出现了,广播接收器似乎记录了两个意图事件,依此类推,因此,如果第三次发送意图,我将接收它3次 这在我的应用程序中造成了严重的问题,我想知道这是否正常,我有什么办法来处理它 这是我的密码: 发送意向书: Intent i = new Intent(); i.setAction(SIP_INCOMING_CALL_CANCEL_I

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

当我发送一个定制的意图时,我注册了一个广播接收器,我捕捉到了意图,没有问题

然而,当我再次发送意图时,问题似乎出现了,广播接收器似乎记录了两个意图事件,依此类推,因此,如果第三次发送意图,我将接收它3次

这在我的应用程序中造成了严重的问题,我想知道这是否正常,我有什么办法来处理它

这是我的密码:


发送意向书:

Intent i = new Intent();
i.setAction(SIP_INCOMING_CALL_CANCEL_INTENT);
sendBroadcast(i);
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 i = new Intent();
i.setAction(SIP_INCOMING_CALL_CANCEL_INTENT);
sendBroadcast(i);
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);

无论如何,是否要确保意图只触发一次???

我不确定,为什么会出现此问题,但您确定需要广播(接收器)来处理意图吗? 你能解释一下,你为什么这么做吗


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

您好,warren,我有一个呼叫屏幕UI,当用户说接受呼叫时,我会在SIP引擎代码中的广播接收器中激发一个接收到的意图。因此SIP引擎知道然后发送一个200 OK。我的方法对这一点合适吗?或者你会建议一个更好的方法吗?我在我的代码中发现了问题,这是一个faceplam时刻,我在错误的地方使用了该方法,并且一遍又一遍地注册接收器,在这种情况下,它是有意义的。很高兴你解决了你的问题。