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();
留言
張貼留言