是否可以在方法中管理BroadcastReceiver的生命周期。
void handleSomething() {
doSomethingThatWillBroadcast();
BroadcastReceiver somethingReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (!intent.getBooleanExtra(SOMETHING_RESULT, false)) {
finishSomething(false);
} else {
doAnotherSomethingThatWillBroadcast();
BroadcastReceiver anotherSomethingReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
finishAnotherSomething();
}
};
IntentFilter anotherSomethingFilter = new IntentFilter(ACTION_SOMETHING);
anotherSomethingFilter.addCategory(Intent.CATEGORY_DEFAULT);
registerReceiver(anotherSomethingReceiver, anotherSomethingFilter);
}
}
};
IntentFilter somethingFilter = new IntentFilter(ACTION_DOWNLOAD_APK);
somethingFilter.addCategory(Intent.CATEGORY_DEFAULT);
registerReceiver(somethingReceiver, somethingFilter);
}
我尝试在IntentService方法中使用它,但是我在整个地方都会出现注销错误。
答案 0 :(得分:0)
return somethingReceiver;
然后根据需要管理它?我的应用程序会在不同的类中创建接收者。代码与您的代码相同,但
return somethingReceiver;
并使用Context in params。
BroadcastReciever handleSomething(Context context)
{
}
然后别忘了打电话
unregisterReciever();
何时需要。
我尝试在IntentService方法中使用它,但是我取消注册 错误到处都是。
我之前看到过相同的错误。当我在创建的接收器上运行unregisterReciever()时,错误消失了。 您的代码创建了接收者,但是没有办法取消注册创建的接收者。