開線程的一般寫法

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

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章