dépendance Ajouté à GradleExtrayez Contexte Inscription RxBroadcast.fromBroadcast
compile 'com.cantrowitz:rxbroadcast:1.0.0'
En utilisant RxBroadcast
service intérieur
RxBroadcast.fromBroadcast(this, someFilter)
.subscribe(new Action1<Intent>() {
@Override
public void call(Intent intent) {
//NOTICE : only intent is received. no Context
}
});
regardé à l'intérieur du code source BroadcastProvider.createBroadcastReceiver
méthode
@NonNull
private BroadcastReceiver createBroadcastReceiver(
final Subscriber<? super Intent> subscriber) {
return new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (!subscriber.isUnsubscribed()) {
//NOTICE : context is discarded here.
subscriber.onNext(intent);
}
}
};
}
Comment puis-je récupérer Context
à l'intérieur fromBroadcast
abonnement?
Peu de temps - vous ne pouvez pas, car seulement 'intention' est en cours d'émission. Bien sûr, à moins que vous ne changiez de sources et n'émettiez un objet wrapper avec l'intention et le contexte. – azizbekian
@azizbekian merci. J'essaie d'appeler 'getSystemService' dans l'abonnement, y a-t-il une solution de contournement? – tchelidze