日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Android--異步任務(wù)AsyncTask

 實(shí)例:使用異步任務(wù)從網(wǎng)絡(luò)上下載

網(wǎng)站設(shè)計(jì)制作過(guò)程拒絕使用模板建站;使用PHP+MYSQL原生開(kāi)發(fā)可交付網(wǎng)站源代碼;符合網(wǎng)站優(yōu)化排名的后臺(tái)管理系統(tǒng);網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站收費(fèi)合理;免費(fèi)進(jìn)行網(wǎng)站備案等企業(yè)網(wǎng)站建設(shè)一條龍服務(wù).我們是一家持續(xù)穩(wěn)定運(yùn)營(yíng)了十年的創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司。

package com.example.xiaocool.anysctaskdemo;

import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URLConnection;


public class MainActivity extends ActionBarActivity {
    private TextView show;
    private Button download;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        show = (TextView) this.findViewById(R.id.show_down);
        download = (Button) this.findViewById(R.id.button);
        download.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                DownTask task = new DownTask(MainActivity.this);
                try {
                    /**
                     * 開(kāi)始執(zhí)行耗時(shí)的任務(wù)
                     */
                    task.execute(new URI("http://news.baidu.com/"));
                } catch (Exception E) {
                    E.printStackTrace();
                }

            }
        });
    }


    /**
     * Params  啟動(dòng)任務(wù)執(zhí)行的輸入?yún)?shù)的類型
     * Progress 后臺(tái)任務(wù)完成的進(jìn)度值得類型,
     * Result   后臺(tái)執(zhí)行任務(wù)完成后 返回結(jié)果的類型
     * 如果不需要指定類型 Void
     * 

     * 重寫(xiě)的方法都有系統(tǒng)調(diào)用      */     class DownTask extends AsyncTask {         ProgressDialog progressDialog;         //定義記錄已讀取行的數(shù)量         int hasRead = 0;         Context mContext;         public DownTask(Context context) {             mContext = context;         }         /**          * 后臺(tái)線程將要完成的任務(wù),該方法可以調(diào)用publishProgress(Progress value)更新任務(wù)的執(zhí)行進(jìn)度          *          * @param params          * @return          */         @Override         protected String doInBackground(URI... params) {             StringBuilder sb = new StringBuilder();             try {                 URLConnection conn = params[0].toURL().openConnection();                 //打開(kāi)conn連接對(duì)應(yīng)的輸入流,包裝成BufferReader 對(duì)象                 BufferedReader br = new BufferedReader(                         new InputStreamReader(conn.getInputStream(), "utf-8")                 );                 String line = null;                 while ((line = br.readLine()) != null) {                     sb.append(line + "\n");                     hasRead++;                     //更新任務(wù)的執(zhí)行進(jìn)度                     publishProgress(hasRead);                 }                 return sb.toString();             } catch (Exception e) {                 e.printStackTrace();             }             return null;         }         /**          * 在doInBackground方法中調(diào)用publishProgress(Progress value),更新任務(wù)的進(jìn)度后,就會(huì)觸發(fā)該方法          *          * @param values          */         @Override         protected void onProgressUpdate(Integer... values) {             show.setText("讀取了"+values[0]);             progressDialog.setProgress(values[0]);         }         /**          * 該方法將在執(zhí)行后臺(tái)耗時(shí)程序時(shí)被調(diào)用,該方法用于完成一些初始化的準(zhǔn)備工作,比如在界面上顯示進(jìn)度條          */         @Override         protected void onPreExecute() {             progressDialog = new ProgressDialog(mContext);             progressDialog.setTitle("任務(wù)正在執(zhí)行中!");             progressDialog.setMessage("任務(wù)正在執(zhí)行中,稍后!!");             //取消按鈕不可用             progressDialog.setCancelable(false);             progressDialog.setMax(202);             progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);             progressDialog.setIndeterminate(false);             progressDialog.show();         }         /**          * 當(dāng)doInBackground方法完成后,系統(tǒng)會(huì)自動(dòng)調(diào)用該方法 并將doInBackground()的返回值傳給該方法          *          * @param s          */         @Override         protected void onPostExecute(String s) {             //返回HTML 頁(yè)面的內(nèi)容             show.setText(s);             progressDialog.dismiss();         }     } }


分享文章:Android--異步任務(wù)AsyncTask
URL鏈接:http://www.dlmjj.cn/article/ghgccj.html