Android 安卓系统-是否打算以某种方式递增?
我已经开始在我的应用程序中使用自定义意图,我遇到了一些问题 当我发送一个定制的意图时,我注册了一个广播接收器,我捕捉到了意图,没有问题 然而,当我再次发送意图时,问题似乎出现了,广播接收器似乎记录了两个意图事件,依此类推,因此,如果第三次发送意图,我将接收它3次 这在我的应用程序中造成了严重的问题,我想知道这是否正常,我有什么办法来处理它 这是我的密码: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
发送意向书:
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时刻,我在错误的地方使用了该方法,并且一遍又一遍地注册接收器,在这种情况下,它是有意义的。很高兴你解决了你的问题。