温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android 学习笔记--android——AsyncTask在Android4.X的机制问题

发布时间:2020-06-21 14:58:11 来源:网络 阅读:442 作者:Samuel_humg 栏目:移动开发

AsyncTask在Android4.X的机制问题

       AsyncTask在Android4.X机制是串行的...单一AsyncTask运行完才会运行下一个

       AsyncTask在Android2.3机制是并行的..最多支持5个

 


解决AsyncTask 在4.x串行的问题...自己编写线程池


public class PoolThread {
    private static final int CPU_COUNT = Runtime.getRuntime()
            .availableProcessors();
    private static final int CORE_POOL_SIZE = CPU_COUNT + 1;
    private static final int MAXIMUM_POOL_SIZE = CPU_COUNT * 10 + 1;
    private static final int KEEP_ALIVE = 1;
    private static final BlockingQueue<Runnable> sPoolWorkQueue = new LinkedBlockingQueue<Runnable>(
            128);
    private static final ThreadFactory sThreadFactory = new ThreadFactory() {
        private final AtomicInteger mCount = new AtomicInteger(1);

        public Thread newThread(Runnable r) {
            return new Thread(r, "AsyncTask #" + mCount.getAndIncrement());
        }
    };
    public static final Executor THREAD_POOL_EXECUTOR = new ThreadPoolExecutor(
            CORE_POOL_SIZE, MAXIMUM_POOL_SIZE, KEEP_ALIVE, TimeUnit.SECONDS,
            sPoolWorkQueue, sThreadFactory);

}


启动 AsyncTask 的时候  reTask.executeOnExecutor(PoolThread.THREAD_POOL_EXECUTOR,params...)

就可以并行咯..

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI