1.開子線程做耗時:
private HandlerThread mHandlerThread;
private Handler mHandler;
private Runnable mClearCacheRunnable = new Runnable() {
@Override
public void run() {
xxx耗時操作;
}
};
mHandlerThread = new HandlerThread(“xxxName”);
mHandlerThread.start();
mHandler = new Handler(mHandlerThread.getLooper());
mHandler.post(mClearCacheRunnable);
如果Handler中有多個重複耗時操作的話,可以統一在handlemessage中處理:
然後可以構造一個CustomHandler對象進行sendmessage:
mHandler = new
CustomHandler(mHandlerThread.getLooper());
mHandler.sendMessage(0x00);
2.開子線程做ui改動:
private HandlerThread mHandlerThread;
private Handler mHandler;
private Runnable mClearCacheRunnable = new Runnable() {
@Override
public void run() {
ui修改(非耗時操作!); }
};
mHandlerThread = new HandlerThread(Looper.getMainLooper());
mHandlerThread.start();
mHandler = new Handler(mHandlerThread.getLooper());
mHandler.post(mClearCacheRunnable);