Я следую this architecture, чтобы создать приложение.IOException (MAIN_THREAD) с использованием InstanceID и ReactiveX
Я хочу получить маркер GCM устройства и отправить его на свой сервер. Это линия, где брошено исключение:
String token = instanceID.getToken(Constants.SENDER_ID,
GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
Как я AMB с помощью RxAndroid, я не понимаю, почему это происходит потому, что эта линия выполнена в новом потоке. Я даже делаю запросы на свой сервер синхронно, и все работает нормально.
Как настроить Rx:
public class RegisterGcmUseCase {
private Subscription subscription = Subscriptions.empty();
public void execute(Subscriber UseCaseSubscriber) {
this.subscription = this.buildUseCaseObservable()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(UseCaseSubscriber);
}
public Observable buildUseCaseObservable() {
// ...
InstanceID instanceID = InstanceID.getInstance(context);
String token = "";
try {
token = instanceID.getToken(Constants.SENDER_ID,
GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
} catch (IOException e) {
e.printStackTrace();
}
// ...
}
}
Любая идея, что происходит?
Спасибо.