最近写了个简单的程序,有个http的请求需求,也不复杂,就集成个Volley做为网络请求框架。由于程序常驻后台运行,使用中发现运行时间长了,任务线程就不工作了。
开始我以为是线程异常退出了,但查看日志并没有发现有退出的痕迹,后来发现程序的线程数很多,经验证,是在使用volley发送请求时,每次都新建RequestQueue导致的,建议一个程序,用一个单例的RequestQueue,顺便学会了安卓线程的查看方法,基本和Linux一致。
首先用ps命令,过滤包名,找到APP的进程号18451

然后再过滤这个进程号就可以了,可以看到,我这个APP有59个线程

线程号和进程号一致的,是安卓的主线程,也就是UI线程,其他的都是子线程

博客讲述了作者在程序中集成Volley作为网络请求框架时遇到的问题,即长时间运行后任务线程停止工作。作者发现原因是每次发送请求都新建RequestQueue导致线程数量过多。解决方案是采用单例模式来管理RequestQueue,并分享了如何在安卓中查看线程的方法,强调了主线程和子线程的区分。
1035

被折叠的 条评论
为什么被折叠?



