У меня есть подсистема приемника, классифицированная внутри фрагмента и сопровождающая служба, которая отправляет сообщение в широковещательный приемник, чтобы показать тост неопределенно в ожидании определенных условий. У меня также есть логическое значение, чтобы сообщить мне, работает ли приемник или нет. Приемник зарегистрирован щелчком элемента списка, как показано.IllegalArgumentException: Получатель не зарегистрирован в подклассе Получатель в пределах фрагмента
if(!ReceiverON){
getActivity().registerReceiver(new Receiver(), filter);
ReceiverON=true;
}
Я хочу отменить регистрацию после разрушения фрагмента. Я знаю. Документы говорят, что он должен быть незарегистрирован в OnPause, но во время onPause я использую приемник в сочетании с сервисом, чтобы сохранить тост. В моем On Уничтожить я Разрегистрировать как ниже
if(ReceiverON){
ReceiverON=false;
Log.i("Log on Destroy", "Receiver ON...Destroying");
getActivity().unregisterReceiver(new Receiver());
if(getActivity().startService(ServiceIntent) != null) {
getActivity().stopService(ServiceIntent);
}
}
Если я, как выше приложение аварий с IllegalArgumentException: Получатель не зарегистрирован на линии UNREGISTER. Если я прокомментирую эту строку, я получаю сообщение об ошибке, чтобы не отменить регистрацию моего получателя. Как я могу это решить?
вам мой друг заслуживают Upvote и холодное пиво, чтобы пойти с ним –