Android項目開發常用工具類LightTaskUtils源碼介紹

  • 版權聲明 本文原創作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl

LightTaskUtils概述

LightTaskUtils是一個輕量級的線程管理工具。

LightTaskUtils截圖

LightTaskUtils截圖如下:

LightTaskUtils源碼

LightTaskUtils源碼如下:

import android.os.HandlerThread;
import android.os.Handler;

/**
 * 輕量級的線程管理工具類
 *
 * 本文作者:谷哥的小弟
 * 博客地址:http://blog.csdn.net/lfdfhl
 */

public class LightTaskUtils {

    private Handler mHandler;
    private HandlerThread mHandlerThread;

    public LightTaskUtils() {
        mHandlerThread = new HandlerThread("LightTaskThread");
        mHandlerThread.start();
        mHandler = new Handler(mHandlerThread.getLooper());
    }

    /**
     * 普通操作,線程優先級比UI線程底,用於無UI交互操作
     */
    public void post(Runnable runnable) {
        if (mHandler != null) {
            mHandler.post(runnable);
        }
    }

    /**
     * 線程優先級和UI線程一樣,用於UI交互操作
     */
    public void postAtFrontOfQueue(Runnable runnable) {
        if (mHandler != null) {
            mHandler.postAtFrontOfQueue(runnable);
        }
    }

    public void postDelayed(Runnable runnable, long delay) {
        if (mHandler != null) {
            mHandler.postDelayed(runnable, delay);
        }
    }

    public void postAtTime(Runnable runnable, long time) {
        if (mHandler != null) {
            mHandler.postAtTime(runnable, time);
        }
    }

    /**
     * 清空Handler消息棧和子線程的Loop,避免內存泄漏
     */
    public void removePost() {
        if (mHandlerThread != null) {
            mHandlerThread.quit();
            mHandlerThread = null;
        }
        if (mHandler != null) {
            mHandler.removeCallbacksAndMessages(null);
            mHandler = null;
        }
    }
}

到此這篇關於Android項目開發常用工具類LightTaskUtils的文章就介紹到這瞭,更多相關android開發工具類LightTaskUtils內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: