Okhttp 2.7.0 ile birlikte Retrofit 2-beta2 kullanıyorum. Retrofit 2/OkHttp: Tüm çalışan isteklerini iptal et
Ben Retrofit .client() yöntemi kullanıyorum ve istekleri çalışıyor hepsi iptal etmek Retrofit danOkHttpClient
nesneyi almak için aradım o
cancel(Object tag) yöntem ama istekleri hala yayınlanmaya devam ve bir yanıt almak. Hatta müşterinin
Dispatcher
'un
getQueuedCallCount() ve
getRunningCallCount() numaralı sayfaları bile, cancel()' i çağırdıktan sonra 0 değerini döndürür..
Bunun çalışması için yapmam gereken başka bir şey var mı? Ya da OkHttp'de bir hata olabilir mi?
Bir geçici çözüm olarak, istemcinin ExecutorService
numaralı telefonunda shutdownNow()
numaralı telefonu arıyorum, ancak daha temiz bir çözüm tercih ediyorum.
Kaynak koddan geçtikten sonra, bunun neden çalışmadığını anlıyorum. Bir önleme kullanarak 'Request' etiketini ayarlıyorum, bu yüzden yeni bir 'Request 'nesnesi yaratıyorum. 'OkHttpClient.cancel (Object tag)' orijinal 'Request''den (' '' '' '' '' '' '' '' '' '' '' '' '' '' ' =' '' '' '' '' +> '' komut satırında mevcut olduğundan beri ''() '' denir. Görünüşe göre, Retrofit, orijinal 'Request 'nesnesinde bir etiket oluşturmak için herhangi bir yöntem veya arabirim göstermez. –