整理下项目中遇到的轮子,后面做的时候直接方便移植

  1. android线程池工具类

线程池工具类

​ 主要用于后台服务中一直轮询的子线程,可以有效的管理线程的使用,再也不用new Thread().start()了

public class ThreadPoolManager{    private static final String TAG = "ThreadPoolManager";    private ExecutorService mExecutorService; // 线程池对象    /**     * 类级的内部类,也就是静态类的成员式内部类,该内部类的实例与外部类的实例     * 没有绑定关系,而且只有被调用时才会装载,从而实现了延迟加载     */    private static class ThreadPoolManagerHolder    {        /**         * 静态初始化器,由JVM来保证线程安全         */        private static ThreadPoolManager instance = new ThreadPoolManager();    }    /**     * 私有化构造方法     */    private ThreadPoolManager()    {    }    public static ThreadPoolManager getInstance()    {        return ThreadPoolManagerHolder.instance;    }    /**     * 初始化线程池     */    public void initThreadPool()    {        if (mExecutorService == null)        {            mExecutorService = Executors.newCachedThreadPool();        }    }    /**     * 执行任务     * @param runnable 任务     */    public void executeRunable(Runnable runnable)    {        try        {            if (mExecutorService != null && !mExecutorService.isShutdown())            {                mExecutorService.execute(runnable);            }        }        catch (RejectedExecutionException e)        {            // 打印当前线程池中活跃的线程数量            int threadCount = ((ThreadPoolExecutor) mExecutorService).getActiveCount();            Log.d(TAG,                    "[executeRunable]: current alive thread count = " + threadCount);            e.printStackTrace();        }    }    /**     * 关闭线程池     */    public void shutdownExecutor()    {        if (mExecutorService != null && !mExecutorService.isShutdown())        {            mExecutorService.shutdown();            mExecutorService = null;        }    }}

使用方法

  /**     * 初始化更新线程     */    public void initUpdateRunnable() {        ThreadPoolManager.getInstance().initThreadPool();        ThreadPoolManager.getInstance().executeRunable(new Runnable() {            @Override            public void run() {                // dos somethings            }        });    }// 关闭整个线程池ThreadPoolManager.getInstance().shutdownExecutor();

更多相关文章

  1. Android正确关闭线程
  2. Android 主线程子线程执行关系
  3. Android中工作线程与主线程同步方式
  4. Android 关闭线程(转)
  5. android kernel 初始化 2
  6. Android 多线程2
  7. Android MediaServer初始化流程

随机推荐

  1. Android(安卓)总结外置 内置SD卡路径问题
  2. android 浮动按钮
  3. Android实现按下Back键程序隐藏到后台,而
  4. android listview的下拉加载
  5. mono for android 获取手机照片或拍照并
  6. android获取经纬度和地方名称(baidu api)
  7. android 开源项目个人总结
  8. Android调用自身相机拍照并保存拍摄的照
  9. android抓取各种log的方法
  10. Android(安卓)handler 可能会造成内存泄