Добавлена зависимость к GradleПолучить контекст в подписке RxBroadcast.fromBroadcast
compile 'com.cantrowitz:rxbroadcast:1.0.0'
Использование RxBroadcast
внутри службы
RxBroadcast.fromBroadcast(this, someFilter)
.subscribe(new Action1<Intent>() {
@Override
public void call(Intent intent) {
//NOTICE : only intent is received. no Context
}
});
Посмотрел внутри исходного кода BroadcastProvider.createBroadcastReceiver
метод
@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);
}
}
};
}
Как я могу получить Context
внутри fromBroadcast
подписка?
Вскоре - вы не можете, потому что только «умысел» переводится. Конечно, если вы не измените источники и не испустите объект-оболочку с намерением и контекстом. – azizbekian
@azizbekian спасибо. Я пытаюсь вызвать 'getSystemService' внутри подписки, есть ли способ обхода? – tchelidze