Android background thread

在Android上使用Handler預設為Main Thread (UI Thread)工作

但在執行耗時工作時有可能會造成ANR

因此可以改用HandlerThread在背景執行工作,避免UI Thread塞車

--

private HandlerThread mBGThread;

private Handler mHandler;


mBGThread = new HandlerThread("BackgroundThread");

mBGThread.start();


mHandler = new Handler (mBGThread.getLooper()) {

       @Override

        public void handleMessae(@NunNull Message msg) {super.handleMessage(msg);

};

此時mHandler即在Background thread工作

以下可判斷是否在Main thread

boolean isMainThread = (Thread.currentThread() == Looper.getMainLooper().getThread());

結束Background thread時

mBGThread.quit();

留言

這個網誌中的熱門文章

Excel建立日期選擇器(Microsoft Date and Time Picker Control)

ADB Shell如何寫批次檔(.bat)

No pain, no gain!