Как предварительно выбрать нативную рекламу для аудитории в фоновом потоке [RxJava] - PullRequest
0 голосов
/ 20 апреля 2019

Пытался загрузить сеть аудитории facebook в фоновом потоке, но это дает мне исключение.

У меня есть фид контента, где я показываю рекламу. Я предварительно извлекаю рекламу, используя sdk для аудитории, однако приложение становится медленным со временем, так как при просмотре пользователем появляется больше объявлений. Я попытался решить эту проблему, переместив выборку (сетевые вызовы) в фоновый поток с помощью RxJava. Однако это не сработало, оно выдает следующее исключение, которое я не знаю, как решить:

Невозможно создать обработчик в потоке Thread [RxCachedThreadScheduler-1,5, main], который не вызвал Looper.prepare ()

SDK пытается создать обработчики, которые работают только в потоке пользовательского интерфейса, в то время как я пытаюсь загрузить рекламу из фонового потока, что приводит к этому исключению. Как мне это решить?

Single<Boolean> single = Single.create(new SingleOnSubscribe<Boolean>(){
@Override
public void subscribe(final SingleEmitter<Boolean> emitter) throws Exception{
NativeAdsManager manager = new NativeAdsManager(context, adId, 10);
manager.setListener(new NativeAdsManager.Listener() {
@Override
public void onAdsLoaded() {emitter.onSuccess(true);}
@Override
public void onAdError(AdError adError) {emitter.onSuccess(false);}
});
manager.loadAds();
}
});
single.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new DisposableSingleObserver<Boolean>() {
@Override
public void onSuccess(Boolean success) {}
@Override
public void onError(Throwable e) {}
});

`

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...