Java多線程方式
1. 繼承Thread線程,實現run方法
2. 實現Runnable接口
JAVA單繼承性,當我們想將一個已經繼承了其他類的子類放到Thread中時,單繼承的局限就體現出來了
但是可以實現多個接口,所以第二種方法相對于第一種來說靈活許多
其次,通過
new Thread(Runnable runnable).start()
啟動線程的方式,若變量在runnable中定義,多個線程可以共用,因為來自同一個對象
比較適合多個相同程序代碼的線程去處理同一資源的情況
Android多線程方式
主要集中在UI線程和其他線程的交互問題上
1. Thread,Handler,Message
2. AsyncTask
3. Runnable
第一種方式,new Thread()然后通過Handler sendMessage,由Handler的handleMessage方法實現對應的處理,完成與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()中執行任務,onPreExecute()準備工作,onPostExecute()任務結束后調用,onProgressUpdate與publishProgress配合使用,實現和UI線程的交互
AsyncTask mLoadingTask = new AsyncTask(){ protected Object doInBackground(Object[] objects) { } protected void onProgressUpdate(Object[] values) { } ......}mLoadingTask.execute();第三種方式,Runnable對象,通過Handler直接Post等方法啟動線程,實現與UI線程的交互
private Runnable mRunnable = new Runnable(){ public void run() { /*do sth*/ }}mHandler.post(mRunnable);以上就是Android 多線程實現的三種方法,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答