我有一個Android應用程序,在按鈕單擊後使Retrofit服務調用uploadPhoto
。處理方向變更後,在RxJava Android應用程序中處理Retrofit服務響應
在此服務電話響應我想收到照片ID,所以我需要聽服務響應或錯誤。我有一個處理這個
Signletons.retrofitService.uploadPhoto(photoData)
.subscribe(new Action1<Response<UploadResponse>>() {
@Override
public void call(Response<UploadResponse> response) {
// response.body().photoId
}
})
但是,當活動被由於取向變化破壞了,我從上面可觀察退訂之間我的照片發送請求,這可能某處發生,但在收到響應之前的代碼。這意味着我可以上傳照片,但不能獲取照片ID。
處理這種情況並在方向更改後重新訂閱以獲得結果的最佳方法由於方向更改,我錯過了什麼?
它是如何幫助再次重新創建活動時重新訂閱? –
你是對的。它不會幫助。您可能不會在onCreate方法中再次訂閱Observable,因爲前一個未取消訂閱。 – dwursteisen
如果我不會退訂此可觀察項,那麼此可觀察項的處理程序將停留在將被銷燬的活動中。當結果到達時,在被銷燬的活動中沒有任何處理它的地方。更重要的是,保持活動不被破壞是一項非常昂貴的操作。 –