在一个低性能平台上遇到一个进入恢复出厂设置慢问题,有时候会卡住几十秒。
跟踪发现进入恢复出厂设置是会先在AsyncTask 对persistent 分区做格式化,慢就是因为AsyncTask 启动慢。
调查发现AsyncTask 启动慢的原因有二:
1. 系统默认的AsyncTask 是基于一个顺序执行的线程池,所以如果线程池里的别的线程正在运行,那么当前AsyncTask 就无法得到及时执行。
2. AsyncTask 执行线程优先级是后台线程,比普通线程的优先级低。所以在系统忙的时候也无法得到及时执行。
所以解决办法是替换成一个独立线程执行。