日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android菜鸟的成长笔记(13)——异步任务(Async Task)

發(fā)布時(shí)間:2024/9/5 Android 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android菜鸟的成长笔记(13)——异步任务(Async Task) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Android菜鳥的成長(zhǎng)筆記(13)——異步任務(wù)(Async Task)

原文: [置頂] Android菜鳥的成長(zhǎng)筆記(13)——異步任務(wù)(Async Task)

Android的UI線程主要負(fù)責(zé)處理用戶的事件及圖形顯示,因此主線程UI不能阻塞,否則會(huì)彈出一個(gè)ANR(Application Not Responding)異常,所以不能在UI線程中執(zhí)行耗時(shí)操作。AsyncTask<>是一個(gè)抽象類,通常被繼承,繼承時(shí)需要指定三個(gè)泛型: AsyncTask<Params, Progress, Result> Params:啟動(dòng)任務(wù)執(zhí)行的輸入?yún)?shù)的類型 Progress:后臺(tái)任務(wù)完成的進(jìn)度值的類型 Result:后臺(tái)執(zhí)行任務(wù)完成后返回結(jié)果的類型 例子:從http://m.blog.csdn.net/blog/lxq_xsyu異步加載數(shù)據(jù)到手機(jī)上并顯示(詳細(xì)請(qǐng)看注釋) MainActivity.java package com.example.testasyntask;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection;import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; import android.os.AsyncTask; import android.os.Bundle; import android.view.View; import android.webkit.WebView; import android.widget.TextView;public class MainActivity extends Activity {private TextView show;private WebView webView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);show = (TextView) findViewById(R.id.textView1);webView = (WebView) findViewById(R.id.webview);}public void download(View source) throws MalformedURLException{DownTask task = new DownTask(this);task.execute(new URL("http://m.blog.csdn.net/blog/lxq_xsyu"));}class DownTask extends AsyncTask<URL, Integer, String>{ProgressDialog pdialog;Context mContext;int hasRead = 0;public DownTask(Context ctx){mContext = ctx;}/*** 該方法在執(zhí)行后臺(tái)耗時(shí)操作前被調(diào)用,初始化*/@Overrideprotected void onPreExecute() {pdialog = new ProgressDialog(mContext);pdialog.setTitle("任務(wù)正在執(zhí)行中");pdialog.setMessage("任務(wù)正在執(zhí)行中,請(qǐng)耐心等待...");pdialog.setCancelable(false);pdialog.setMax(182);pdialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);pdialog.setIndeterminate(false);pdialog.show();}/*** 重寫該方法就是后臺(tái)線程將要完成的任務(wù),該方法可以調(diào)用* publishProgress(Progress.. values)方法更新任務(wù)的執(zhí)行進(jìn)度。*/@Overrideprotected String doInBackground(URL... params) {StringBuilder sb = new StringBuilder();try {URLConnection conn = params[0].openConnection();BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));String line = null;while((line = br.readLine()) != null){sb.append(line + "\n");hasRead++;publishProgress(hasRead);}return sb.toString();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();return null;}}/*** 當(dāng)doInBackground完成后,系統(tǒng)自動(dòng)調(diào)用*/@Overrideprotected void onPostExecute(String result) {//show.setText(result);webView.loadDataWithBaseURL(null, result, "text/html", "utf-8", null);pdialog.dismiss();}@Overrideprotected void onProgressUpdate(Integer... values) {show.setText("已經(jīng)讀取了【" + values[0] + "】行!");pdialog.setProgress(values[0]);}} } activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"android:gravity="center_horizontal"><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="102dp"android:text="TextView" /><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginBottom="31dp"android:text="開始下載" android:onClick="download"/><WebView android:id="@+id/webview"android:layout_width="match_parent"android:layout_height="wrap_content"/> </LinearLayout> 運(yùn)行結(jié)果: ? ? ? ? ? ? ?


posted on 2014-02-22 22:54 NET未來之路 閱讀(...) 評(píng)論(...) 編輯 收藏

轉(zhuǎn)載于:https://www.cnblogs.com/lonelyxmas/p/3561442.html

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的Android菜鸟的成长笔记(13)——异步任务(Async Task)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。