【问题标题】:Android - Intents somehow incrementing?Android - 意图以某种方式递增?
【发布时间】:2010-03-01 12:24:10
【问题描述】:

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

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

但是,当我再次发送意图时似乎出现问题,广播接收器似乎注册了意图的两个事件,依此类推,所以如果第三次发送意图,我会收到 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 只被触发一次??

【问题讨论】:

    标签: android android-intent broadcast broadcastreceiver intentfilter


    【解决方案1】:

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

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

    【讨论】:

    • 嗨,沃伦,我有一个呼叫屏幕 UI,当用户说接受呼叫时,我触发了一个意图,该意图在我的 SIP 引擎代码中的广播接收器中收到。所以 SIP 引擎知道然后发送 200 OK。我的方法对此是否可行,或者您会建议更好的方法吗?我在我的代码中发现了问题,它是一个面子时刻,我在错误的地方使用了该方法并一遍又一遍地注册接收器
    • 好的,在这种情况下是有道理的。很高兴你解决了你的问题。
    猜你喜欢
    • 2015-09-12
    • 1970-01-01
    • 2023-01-28
    • 2022-06-24
    • 2015-03-23
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 2012-01-25
    相关资源
    最近更新 更多