2016-08-12 47 views
-1

我打電話給sendPhoneNumberHandler@OnClick這意味着正常得到NetworkOnMainThreadException。 爲了解決這個問題,我使用了@WorkerThread註解,它允許方法調用在UI /主線程之外運行。相反,我仍然得到NetworkOnMainThreadException儘管使用@WorkerThread批註,爲什麼仍然有NetworkOnMainThreadException?

@WorkerThread 
    public void sendPhoneNumberHandler(final Context context, String phoneNumber) { 
    MonoApplication application = MonolApplication.get(phoneNumberMvpView.getContext()); 
    rx.Observable<HeaderResponse> checkPhoneNumber = 
     application.getMonolService(Constants.monolAPIUrl).checkPhoneNumber(phoneNumber); 

    subscription = checkPhoneNumber.subscribe(new Observer<HeaderResponse>() { 
     @Override public void onCompleted() { 
     } 

     @Override public void onError(Throwable e) { 
     phoneNumberMvpView.onPhoneNumberSendResult(false, 0); 
     } 

     @Override public void onNext(HeaderResponse s) { 
     phoneNumberMvpView.onClearText(); 
     phoneNumberMvpView.onPhoneNumberSendResult(true, s.getError()); 
     } 
    }); 
    } 

任何線索?

+0

您應該將您的方法放入AsyncTask中。 –

+0

我錯過了訂閱IO線程('subscribeOn(Schedulers.io())') – Abdellah

回答

5

使用註釋不會使該方法在UI線程上運行。它只是表示此方法需要在單獨的線程中執行

+0

我的不幸感謝了 – Abdellah

相關問題