欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

Android 多線程的實例詳解

Java多線程方式

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

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

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

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

其次,通過

new Thread(Runnable runnable).start() 

啟動線程的方式,若變量在runnable中定義,多個線程可以共用,因為來自同一個對象

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

Android多線程方式

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

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

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

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í)行任務,onPreExecute()準備工作,onPostExecute()任務結(jié)束后調(diào)用,onProgressUpdate與publishProgress配合使用,實現(xiàn)和UI線程的交互

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

mLoadingTask.execute();

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

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

mHandler.post(mRunnable);

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

相關(guān)文章

最新評論