приемник вещания не работает (не вызывается) - PullRequest
0 голосов
/ 13 мая 2018

Итак, я регистрирую широковещательный приемник в действии A

BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context arg0, Intent intent) {
        String action = intent.getAction();
        if (action.equals("finish_activity")) {
            finish();
        }
    }
};

(непосредственно в классе)

и отменяю регистрацию

@Override
    protected void onStop() {
        super.onStop();
        unregisterReceiver(broadcastReceiver);
    }

.Когда я пытаюсь вызвать его из действия B

Intent finishCheckALoanActivityIntent = new Intent("finish_activity");
            sendBroadcast(finishCheckALoanActivityIntent);

(которое было начато действием A некоторое время назад (не уверен, имеет ли это значение)), оно не завершает действие A. Другими словами, трансляцияполучатель не вызывается.(PS: я также использую finish () в своем задании B сразу после вызова получателя, чтобы завершить задание A).Я попытался отладить это.Я поставил точку останова в методе onReceive, но точка останова не получила удара.

1 Ответ

0 голосов
/ 13 мая 2018

Проблема заключалась в том, что я вызывал метод отмены регистрации внутри своей активности onStop, и когда я снова проверил блок-схему https://developer.android.com/reference/android/app/Activity, я понял, что отменяю регистрацию, прежде чем использовать его, поэтому я переместил вызов метода отмены регистрации внутри OnDestroy.

...