我在后台运行AsyncTask。我在方向改变时附加了AsyncTask。如果AsyncTask正在运行,我让它运行。如果它是FINISHED则启动一个新的AsyncTask。现在处于调试模式,我看到以下内容。 API级别10。
答案 0 :(得分:1)
5 AsyncTask-绝对。 AsyncTask子系统启动了几个可以分配AsyncTasks的线程(虽然3.0后只使用了1,除非你通过executeOnExecutor请求更多)5已经是启动时的默认数字多年。通常只有1运行,它们在1个线程上串行执行,除非被告知不这样做。其他人正在等待工作。
AdWorker-不属于Android。您使用的是广告库吗?如果是这样,它看起来要么启动了很多线程,要么就是没有正确终止它们。由于您让活动终止并在轮换时重新启动,我怀疑广告库在轮换后没有清理旧线程并且让它们留下来。谷歌的这种行为是愚蠢的另一个原因,应该由任何需要线程或任务的应用程序关闭。