Android 多線程的實現(xiàn)方法總結(jié)
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)文章
詳解Android使用CoordinatorLayout+AppBarLayout實現(xiàn)拉伸頂部圖片功能
這篇文章主要介紹了Android使用CoordinatorLayout+AppBarLayout實現(xiàn)拉伸頂部圖片功能,本文實例文字相結(jié)合給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10Android基于高德地圖完全自定義Marker的實現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于Android基于高德地圖完全自定義Marker的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-07-07EditText監(jiān)聽方法,實時的判斷輸入多少字符
在EditText提供了一個方法addTextChangedListener實現(xiàn)對輸入文本的監(jiān)控。本文分享了EditText監(jiān)聽方法案例,需要的朋友一起來看下吧2016-12-12Android RecyclerView實現(xiàn)懸浮吸頂、分隔線、到底提示效果
這篇文章主要介紹了Android RecyclerView實現(xiàn)懸浮吸頂、分隔線、到底提示效果,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01Android PopupWindow實現(xiàn)遮罩層效果
這篇文章主要為大家詳細介紹了Android PopupWindow實現(xiàn)遮罩層效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-10-10Mac中配置gradle環(huán)境及使用android studio打包jar包與arr包的方法
這篇文章主要給大家介紹了關(guān)于在Mac中配置gradle環(huán)境,以及使用android studio打包jar包與arr包的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2018-01-01Android ListView適配器(Adapter)優(yōu)化方法詳解
這篇文章主要介紹了Android ListView優(yōu)化方法詳解的相關(guān)資料,這里舉例說明該如何對ListView 進行優(yōu)化,具有一定的參考價值,需要的朋友可以參考下2016-11-11Android ServiceManager的啟動和工作原理
這篇文章主要介紹了Android ServiceManager的啟動和工作原理,幫助大家更好的理解和學習使用Android開發(fā),感興趣的朋友可以了解下2021-03-03