今天被坑到這裏很久,我們對API調用了observeOn(MainThread)
之後,線程會跑在主線程上,包括onComplete
也是,unsubscribe
也在主線程,然後如果這時候調用call.cancel
會導致NetworkOnMainThreadException
,所以一定要在retrofit
的API調用ExampleAPI.subscribeOn(io).observeOn(MainThread)
之後加一句unsubscribeOn(io)
。
完整的就是
ExampleAPI.subscribeOn(io).observeOn(MainThread).unsubscribeOn(io)
。