有人玩过 Retrofit 2.0 吗?特别是 Call.cancel() 方法?
什么时候最适合触发它?我尝试在 Fragment
的 onStop()
中调用它,但遇到了一些问题,当屏幕显示关闭时,调用被取消。我还尝试在 Fragment
的 onDestroy()
中调用它,但这个方法不能取消在 ViewPager
(例如在选项卡之间切换)中触发的调用。
有人有这方面的工作示例吗?
我尝试在我的 Loop 存储库中实现了这个功能: https://github.com/lawloretienne/Loop
onDestroyView()
中将其工作。但我的问题是有时会抛出NetworkOnMainThreadException
,因此Call对象永远不会被取消。这当然会破坏取消机制的目的,如果不能每次都发生。显然,在OKHttp中存在某种Strictmode问题。此处已记录一个问题https://github.com/square/okhttp/issues/1592。 - Etienne LawlorCall.cancel()
封装在一个AsyncTask
中。 - Etienne Lawlor