Android - Намерения каким-то образом увеличиваются?
-
23-09-2019 - |
Вопрос
Я начал использовать пользовательские намерения в своем приложении и столкнулся с небольшой проблемой.
Когда я отправляю пользовательское намерение, я регистрирую широковещательный приемник и без проблем улавливаю это намерение.
Однако проблемы, похоже, появляются, когда я отправляю намерение снова, широковещательный приемник, похоже, регистрирует два события намерения и так далее, поэтому, если намерение отправляется в третий раз, я получаю его 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);
Есть ли какой-нибудь способ убедиться, что Намерение выполняется только один раз??
Решение
Я не уверен, почему у вас возникла эта проблема, но вы уверены, что вам нужен широковещательный (приемник) для обработки намерений?Не могли бы вы, пожалуйста, объяснить, почему вы это делаете?
Вернемся к вашей проблеме:можете ли вы предложить простой минималистичный проект?Я думаю, проблема не в коде, который вы предоставили.