【发布时间】:2015-08-17 11:04:04
【问题描述】:
我在我的项目中使用 Android 注释。
我正在后台线程中执行一组任务。每个后台线程都包含对 REST 端点的调用(使用 Retrofit)。此时所有调用都是同步的。如果我离开应用程序(在片段的 onDestroy 中),我试图取消所有线程。
我的代码结构是这样的
@Background
void bgMethod1(){
//call rest endpoint get response
uiThread1(response)
}
@UiThread
void uiThread1(){
some UI related changes = show toasts etc
bgMethod2();
}
@Background
void bgMethod2()
//call next rest endpoint get response
uiThread2(response)
}
@UiThread
void uiThread2(){
some UI related changes = show toasts etc
bgMethod3();
}
依此类推……在这些线程运行的任何时候,如果我退出应用程序(按后退按钮),我想停止所有这些线程的运行(也停止当前的 REST 调用就像所有未来的电话一样)
我目前指的是这个 github 页面的 Android 注释
https://github.com/excilys/androidannotations/wiki/WorkingWithThreads
我曾尝试使用 Fragment 的 BackgroundExecutor.cancelAll inonDestroy 无济于事。所有方法都执行(所有 REST 调用都是按顺序进行的)。
如何停止所有线程的执行/取消以及停止由 Retrofit 在这些线程中发出的请求,包括正在进行的和将来的请求。
我的 Retrofit REST 接口中的所有方法都是同步的并且有一个返回类型。
【问题讨论】:
标签: android multithreading retrofit android-annotations