我最近也做类似的功能,让AsyncTask 拆分成好几个小的AsyncTask1~AsyncTask10
一个执行完就换下一个接着做。
速度会慢一点点,但是卡住的情况消失 且同时间也只有一个在跑
但是不知道为何新的API就不行.....(android 4.4.3)
刚刚才写下测试方式,看看会在哪边卡住,
目前看现况的回传是在执行第一个AsyncTask 就停了(推测 因为还没写测试...)
※ 引述《jastpower884 (WIND)》之铭言:
: 最近写了一个程式,功能会大量用到 Asynctask 和 GCM 去向网络取资料。
: 但是最近发生了一个状况,就是在某些状况下(可能是 Asynctask 没把东西还没取
: 完东西)如果碰到主程序 Crash 的时候,再开启一次程式 Asynctask 的执行序会全部都
: 卡住。
: 低阶机种 HTC Desire S(大树)倒是不会有这种状况,但是 LG G2、Sansumg Note3
: 却得卡上一段时间才会跑执行序(大约一分钟),而如果遇到 Sony 的机子(Z、ZR),则会
: 彻底卡死,除非去清除暂存和快取,还有强制终止程式才能解决。
: 碰到这样的状况如果我下 ActivityManager.killBackgroundProcess 能够解决,本
: 来是想说用 UncaughtExceptionHandler 去拦截后下杀光所有背景服务的指令,只是好
: 像不是每一次都这么顺利(有的时候可以,有的时候不行)。
: 周遭的同仁对这个状况多出了很有趣的假设,因为大树的内存太少了,所以在程
: 式写坏当掉的时候会把这些东西清掉,但是 G2 Note3 或是 ZR Z 那些,则是内存
: 比较大,会把这些卡住的执行序留着,反而让一次限制五个执行的 AsynTask 卡住了。
: 我想问的是,有没有人遇过太多异步任务卡住的问题?是如何解决呢?