亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android 多線程的實(shí)現(xiàn)方法總結(jié)

 更新時(shí)間:2017年08月20日 10:58:56   投稿:lqh  
這篇文章主要介紹了Android 多線程的實(shí)現(xiàn)方法總結(jié)的相關(guān)資料,這里提供三種方法,幫助大家掌握這部分內(nèi)容,需要的朋友可以參考下

Android 多線程的實(shí)例詳解

Java多線程方式

1. 繼承Thread線程,實(shí)現(xiàn)run方法

2. 實(shí)現(xiàn)Runnable接口

JAVA單繼承性,當(dāng)我們想將一個(gè)已經(jīng)繼承了其他類的子類放到Thread中時(shí),單繼承的局限就體現(xiàn)出來了

但是可以實(shí)現(xiàn)多個(gè)接口,所以第二種方法相對于第一種來說靈活許多

其次,通過

new Thread(Runnable runnable).start() 

啟動(dòng)線程的方式,若變量在runnable中定義,多個(gè)線程可以共用,因?yàn)閬碜酝粋€(gè)對象

比較適合多個(gè)相同程序代碼的線程去處理同一資源的情況

Android多線程方式

主要集中在UI線程和其他線程的交互問題上

1. Thread,Handler,Message
2. AsyncTask
3. Runnable

第一種方式,new Thread()然后通過Handler sendMessage,由Handler的handleMessage方法實(shí)現(xiàn)對應(yīng)的處理,完成與UI進(jìn)程的交互

private Handler mHandler = new Handler(){
  public void handleMessage(Message msg) {
    /*do sth through msg */
  }
}

public BadThread extends Thread {
  private final static String TAG = this.getClass().getName();

  public void run() {
    /*coding*/
  }
};

new BadThread().start();

第二種方式,異步線程的方式,doInBackground()中執(zhí)行任務(wù),onPreExecute()準(zhǔn)備工作,onPostExecute()任務(wù)結(jié)束后調(diào)用,onProgressUpdate與publishProgress配合使用,實(shí)現(xiàn)和UI線程的交互

AsyncTask mLoadingTask = new AsyncTask(){
  protected Object doInBackground(Object[] objects) {
  }
  protected void onProgressUpdate(Object[] values) {
  }
  ......
}

mLoadingTask.execute();

第三種方式,Runnable對象,通過Handler直接Post等方法啟動(dòng)線程,實(shí)現(xiàn)與UI線程的交互

private Runnable mRunnable = new Runnable(){
  public void run() { 
    /*do sth*/
  }
}

mHandler.post(mRunnable);

以上就是Android 多線程實(shí)現(xiàn)的三種方法,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

最新評論