3

我已經開始在我的應用程序中使用自定義意圖,並且遇到了一些問題。Android - Intents以某種方式遞增?

當我發送一個自定義意圖我註冊一個廣播接收器,我意識到沒有問題。

但是當我再次發送意圖時似乎出現問題,廣播接收者似乎註冊了意圖的兩個事件等等,所以如果意圖第三次發送,我收到它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); 

反正是有保證的意圖只被解僱一次??

回答

2

我不確定,爲什麼你有這個問題,但你確定你需要一個廣播(接收器)來處理意圖? 你能解釋一下,你爲什麼這樣做?

回到你的問題:你能提供一個簡單的簡約項目嗎?我認爲這個問題不在你提供的代碼中。

+0

嗨沃倫,我有一個電話屏幕的用戶界面,當用戶說接受一個電話時,我在SIP引擎代碼中觸發一個在廣播接收器中接收到的意圖。所以SIP引擎知道然後發送200 OK。我的方法看起來好嗎?還是你會建議更好的方法?我在我的代碼和它的一個faceplam時刻發現了問題,我在錯誤的地方使用了這個方法並且一遍又一遍地註冊了接收器 – 2010-03-01 13:49:54

+1

好的,在這種情況下它是有意義的。很高興你解決了你的問題。 – WarrenFaith 2010-03-01 13:58:21

相關問題