アプリケーションでカスタム インテントの使用を開始しましたが、少し問題が発生しました。
カスタム インテントを送信するときにブロードキャスト レシーバーを登録すると、問題なくインテントをキャッチできます。
ただし、インテントを再度送信すると問題が発生するようです。Broadcast Reciever はインテントの 2 つのイベントを登録するようです。そのため、インテントが 3 回目に送信されると、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);
インテントが一度だけ起動されるようにする方法はありますか??