Android Volley如何停止/清理其调度程序线程

jvi*_*cek 5 android android-volley

看一下Volley库的源代码,我很好奇调度程序线程的"清理"是如何工作的.A RequestQueue包含一个CacheDispatcher实例和一个实例数组NetworkDispatcher.这两个调度程序类都会扩展Thread并在创建后立即启动.之后,它们以无限循环运行,直到quit()调用它们的方法.

我的问题是,这些线程是如何实际停止的(即,如果有的话,阻止它们无限期地运行直到系统杀死应用程序),例如当用户离开应用程序时.quit()调度程序的方法只能从RequestQueues stop()方法调用,但除了start()在初始化新的调度程序之前清除可能的先前调度程序的方法之外,该方法本身不会从Volley中的任何位置调用.

我的目标是问题是空闲线程有多少问题,以及当任务(即一组活动)从前台传到后台并挂起一段时间时它们的行为方式.Androids任务切换器可以容纳相当多的应用程序(尽管其中一些可能已经被弹出/停止),并且大多数应用程序可能使用像volley/okhttp/picasso这样有自己的线程池的库.从理论上讲,这可能会增加相当多的线程(尽管是空闲的).

我理解这是一个相当低级的问题,可能需要很多理论才能正确解释,如果有人可以提供一个满意的答案,触及上面的大胆的东西,我会很乐意接受它.