变态重口极致另类在线-波多久久夜色精品国产-波多野结衣在线观看一区-波多野结衣在线观看一区二区-污污的网站免费阅读-污污视频网址

當(dāng)前位置: 首頁(yè)IT技術(shù) → Android AsyncTask幾個(gè)注意事項(xiàng)

Android AsyncTask幾個(gè)注意事項(xiàng)

更多

  最近在在做一個(gè)Android應(yīng)用開發(fā),都是用AsyncTask來完成后臺(tái)任務(wù),簡(jiǎn)單總結(jié)一下。

  通常使用AsyncTask,是通過繼承這個(gè)超類來完成的,如:

  class BackgroundTask extends AsyncTask { @Override protected Object doInBackground(Object... params) { return null; }}

  復(fù)制代碼

  子類必須重載 doInBackground方法。“<>”里面的三個(gè)類型,依次代表執(zhí)行參數(shù)類型、進(jìn)度參數(shù)類型和結(jié)果參數(shù)類型。doInBackground的參數(shù)類型必須是執(zhí)行參數(shù)類型,返回的類型必須和結(jié)果參數(shù)類型。這三個(gè)類型應(yīng)該根據(jù)需要來定,其實(shí)用Object也可以,用的時(shí)候在做類型轉(zhuǎn)換。啟動(dòng)一個(gè)AsyncTask,可以在這樣做:

  BackgroudTask bt = new BackgroundTask();

  bt.execute("param");

  復(fù)制代碼

  使用AsyncTask的容易犯下的錯(cuò)誤是在doInBackground方法里面直接對(duì)UI元素進(jìn)行操作。如果需要和UI進(jìn)行交互,可以配合使用publishProgress和onProgressUpdate。比如

   @Override protected Object doInbackground(Object... params) {

   ... publishProgress("完成了20%");

  ... publishProgress("完成了80%");

  ... return null;

  }

   protected void onProgressUpdate(Object... progress)

  { ... textView1.setText((String)progress[0]); ... }

  復(fù)制代碼

  這里onProgressUpdate是工作在UI線程的。

  使用AsyncTask的另一個(gè)問題是關(guān)于cancel。實(shí)際上,單單調(diào)用AsyncTask對(duì)象的cancel方法,并不能停止doInBackground方法的繼續(xù)執(zhí)行。通常比較接受的方法是設(shè)置一個(gè)標(biāo)志位,也就是在每次執(zhí)行前檢查一下某個(gè)變量的值(或者可以調(diào)用isCancelled方法判斷),來決定繼續(xù)執(zhí)行還是停止。這種處理手段對(duì)于一些循環(huán)性的工作比較有用,但是對(duì)于一些循環(huán)性弱的工作可能并不怎么有效。這也算是AsyncTask的一個(gè)弱點(diǎn)。和Thread相比,AsyncTask還有一個(gè)弱點(diǎn)是效率的問題,這個(gè)可以在本文開頭給出的鏈接中找到相關(guān)的信息。

  AsyncTask還有一個(gè)問題和onPreExecute方法有關(guān)。這個(gè)方法是工作在UI線程的。雖然是叫onPreExecute,但是doInBackground方法(也就是實(shí)際上的execute),并不會(huì)等待onPreExecute方法做完全部操作才開始執(zhí)行。所以,一般還是不要用這個(gè)方法,可以在調(diào)用AsyncTask對(duì)象的execute方法之前就把該完成的操作完成,以免引起某些錯(cuò)誤。

  AsyncTask還有一個(gè)方法是onPostExecute,這個(gè)方法也是工作在UI線程,它是在doInBackground方法執(zhí)行結(jié)束,并返回結(jié)果后調(diào)用。這個(gè)方法里面可以調(diào)用UI線程的startActivity,這樣可以實(shí)現(xiàn)完成大量后臺(tái)操作后,自動(dòng)跳轉(zhuǎn)Activity的功能。這個(gè)方法里面也可以執(zhí)行另一個(gè)AsyncTask的execute方法。

熱門評(píng)論
最新評(píng)論
發(fā)表評(píng)論 查看所有評(píng)論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)
主站蜘蛛池模板: 久久中文字幕一区二区三区 | www.深夜福利| 一本大道香蕉中文在线高清 | 免费女上男下xx00xx动态图 | 日韩久久影院 | 一本三道a无线码一区v | 欧美视频日韩视频 | 亚洲综合第一欧美日韩中文 | 男女午夜视频在线观看 | 窝窝午夜一级看片爽 | 手机日韩看片 | 天天综合天天 | 国产真实乱freesex | 亚洲欧美日韩第一页 | 深夜福利剧场 | 2020国产大片天天看 | 中国性hd| 欧美一区二区在线观看视频 | 国产高清天干天天视频 | 午夜看片影院在线观看 | 日韩精品成人 | 有没有在线看片www 又www又黄又爽啪啪网站 | 九九热亚洲精品综合视频 | 免费在线黄色片 | 最近中文字幕免费完整 | 你懂的在线观看 | 国产资源中文字幕 | 亚洲五月激情 | 久久久性视频 | 一级毛片免费不卡夜夜欢 | 亚洲一区 在线播放 | 国产东北男同志videos网站 | 羞羞视频免费观看 | 久久久青草青青国产亚洲免观 | 中文字幕成人在线观看 | 黄色毛片在线看 | 久久久久久久国产a∨ | 久久国产高清视频 | 国产亚洲精品91 | 免费国产小视频 | 丁香六月综合 |