999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺析安卓開發中的多線程

2016-10-21 14:56:27張旭輝
電子技術與軟件工程 2016年9期

張旭輝

【關鍵詞】多線程 消息 AsyncTask類

1 引言

隨著移動平臺走入人們的視野,移動平臺的開發越來越為大家所熟悉,而多線程作為安卓開發中非常重要部分,在很多應用程序都是不可或缺的。

2 線程的概念

2.1 進程與線程

進程的概念想必大家都比較熟悉,一個進程就是一個執行中的程序,而每一個進程都有自己獨立的內存空間、系統資源,每一個進程的內部數據和狀態都是完全獨立的。

與進程相同的是,線程也是一段具有某個特定功能的代碼,是單個順序的流控制。但不同的是,同類的多個線程共享內存空間和系統資源,所以系統在線程之間切換時,占用資源比進程小,因此線程也被稱為輕量級進程。

多線程指的是在單個程序中可以同時運行多個不同的線程,以執行不同的功能。這使得一個程序的多行語句看上去好像在同時運行。

2.2 實現線程的兩種方式

當一個安卓程序第一次啟動時,會默認啟動一個主線程,在主線程中主要負責處理與UI相關的事件,包括屏幕繪制、事件響應等,并把相關的事件分發到對應的組件進行處理。因此主線程通常又被叫做UI線程。

在Java中若想新增線程主要通過兩種方式:一是繼承Thread類,一是實現Runnable接口,無論是哪種方式,都將實現線程的核心方法run,通常將需要線程處理的事情都放在run方法中,當啟動線程時會自動調用run方法。

3 安卓開發中的多線程

3.1 Thread+Handler+Message結構

我們以實現Runnable接口的方式定義線程類,代碼如下。

執行如上代碼時并不能實現我們想要的效果,反而會發生異常使程序崩潰退出。這是因為在安卓中若想更新UI則必須由創建它的線程來完成。由于我們在程序中創建了新的線程,所以程序中就存在主線程和子線程。主線程的職責是創建、顯示和更新UI控件、處理UI事件、啟動子線程,而子線程則負責計算時間以及向主線程發出更新UI消息,而不是直接更新UI。但問題是子線程和主線程如何通信呢?在Android中提供了Message作為消息的載體,線程將一個個的消息加入到消息隊列中,Android中又提供了Handler類來對消息進行處理,例如修改UI就可以在Handler中實現。

在線程類中將修改UI改為發送消息。

hand.sendMessage(msg); //發送消息,hand為自定義的Handler類對象

3.2 AsyncTask類

為了能夠實現多線程,Android提供了AsyncTask類,AsyncTask類中包括如下方法。

3.2.1 onPreExecute()

在線程被調用后立即執行,一般用來在執行后臺任務前對UI做一些初始化。

3.2.2 doInBackground(Params... params)

在onPreExecute()完成后立即執行,用于執行較為復雜的操作,此方法將接收輸入參數和返回計算結果。在執行過程中可以調用publishProgress(Progress... values)來更新進度信息。

3.2.3 onProgressUpdate(Progress... values)

在調用publishProgress(Progress... values)時,此方法被執行,直接將進度信息更新到UI組件上。

3.2.4 onPostExecute(Result result)

當后臺操作結束時,此方法將會被調用,計算結果將做為參數傳遞到此方法中,直接將結果顯示到UI組件上。

所有方法均不需要手動調用,其中doInBackground(Params... params)中不能修改UI界面。

4 結論

在安卓開發中多線程是非常重要的操作,安卓中主要提供了兩種方式來實現多線程:消息隊列加Handler的方式和AsyncTask類的方式,兩種方式各有優勢,可以根據實際案例進行選擇。

主站蜘蛛池模板: 狠狠v日韩v欧美v| 四虎成人在线视频| 国产凹凸视频在线观看| 中文字幕无码中文字幕有码在线| 天天躁夜夜躁狠狠躁躁88| 日本一区二区三区精品国产| 97av视频在线观看| 一级毛片在线播放| 爱爱影院18禁免费| 欧美成人怡春院在线激情| 中文字幕首页系列人妻| 国产成人无码AV在线播放动漫| 国产亚洲欧美在线中文bt天堂| 又粗又大又爽又紧免费视频| 全色黄大色大片免费久久老太| 日本在线国产| 免费人成黄页在线观看国产| 国产性生大片免费观看性欧美| 欧美成人精品高清在线下载| 精品无码国产一区二区三区AV| 激情综合激情| 日韩高清成人| 色视频国产| 精品亚洲国产成人AV| 在线观看国产精美视频| 精品久久久久久成人AV| 国产久操视频| 亚洲大尺码专区影院| 亚洲男人在线| 一级毛片免费不卡在线视频| 青青草原国产精品啪啪视频| 欧美中出一区二区| 国产小视频在线高清播放| 国产H片无码不卡在线视频| 尤物精品国产福利网站| 在线播放91| 一边摸一边做爽的视频17国产| 欧美啪啪一区| 亚洲中文字幕在线观看| 91探花在线观看国产最新| 久久a毛片| 成AV人片一区二区三区久久| 91精品啪在线观看国产60岁| 萌白酱国产一区二区| 亚洲第一精品福利| 91久久天天躁狠狠躁夜夜| 亚洲免费黄色网| 亚洲一区色| 欧洲精品视频在线观看| 日韩午夜伦| 亚洲欧州色色免费AV| 午夜日b视频| 欧美亚洲一区二区三区导航| 亚洲无码精彩视频在线观看| 成人国产免费| 亚洲中文在线看视频一区| 国产精品播放| 国产在线自乱拍播放| 麻豆a级片| 国产地址二永久伊甸园| 亚洲成年人网| 国产乱肥老妇精品视频| 亚洲天堂视频在线观看免费| 久久久久国色AV免费观看性色| 日本在线欧美在线| 亚洲最大福利视频网| 一区二区日韩国产精久久| 国产精品欧美日本韩免费一区二区三区不卡 | 日韩大片免费观看视频播放| 欧美一区二区自偷自拍视频| 中文字幕在线一区二区在线| 激情爆乳一区二区| 国产真实乱子伦视频播放| 久久国产免费观看| 精品自窥自偷在线看| 国产一级做美女做受视频| 亚洲天堂区| 国产在线视频自拍| 国产亚洲精久久久久久久91| 国模沟沟一区二区三区| 波多野结衣国产精品| 成人国产精品网站在线看|