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);
反正是有保證的意圖只被解僱一次??
嗨沃倫,我有一個電話屏幕的用戶界面,當用戶說接受一個電話時,我在SIP引擎代碼中觸發一個在廣播接收器中接收到的意圖。所以SIP引擎知道然後發送200 OK。我的方法看起來好嗎?還是你會建議更好的方法?我在我的代碼和它的一個faceplam時刻發現了問題,我在錯誤的地方使用了這個方法並且一遍又一遍地註冊了接收器 – 2010-03-01 13:49:54
好的,在這種情況下它是有意義的。很高興你解決了你的問題。 – WarrenFaith 2010-03-01 13:58:21