發表文章

目前顯示的是 12月, 2024的文章

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();