新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Android中AsyncTask的處理后臺耗時操作

        Android中AsyncTask的處理后臺耗時操作

        作者: 時間:2016-10-08 來源:網絡 收藏

        tv=(TextView)findViewById(R.id.tv);

        download = (Button)findViewById(R.id.download);

        download.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {

        DownloadTask dTask = new DownloadTask();

        dTask.execute(100);

        }

        });

        }

        class DownloadTask extends AsyncTask

        //后面尖括號內分別是參數(例子里是線程休息時間),進度(publishProgress用到),返回值 類型

        @Override

        protected void onPreExecute() {

        //第一個執行方法

        super.onPreExecute();

        }

        @Override

        protected String doInBackground(Integer... params) {

        //第二個執行方法,onPreExecute()執行完后執行

        for(int i=0;i=100;i++){

        pb.setProgress(i);

        publishProgress(i);

        try {

        Thread.sleep(params[0]);

        } catch (InterruptedException e) {

        e.printStackTrace();

        }

        }

        return 執行完畢;

        }

        @Override

        protected void onProgressUpdate(Integer... progress) {

        //這個函數在doInBackground調用publishProgress時觸發,雖然調用時只有一個參數

        //但是這里取到的是一個數組,所以要用progesss[0]來取值

        //第n個參數就用progress[n]來取值

        tv.setText(progress[0]+%);

        super.onProgressUpdate(progress);

        }

        @Override

        protected void onPostExecute(String result) {

        //doInBackground返回時觸發,換句話說,就是doInBackground執行完后觸發

        //這里的result就是上面doInBackground執行后的返回值,所以這里是執行完畢

        setTitle(result);

        super.onPostExecute(result);

        }

        }

        }


        上一頁 1 2 下一頁

        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 谢通门县| 双桥区| 郁南县| 集安市| 桃园市| 永登县| 庆元县| 田东县| 阜平县| 天峻县| 化德县| 静安区| 会昌县| 鄢陵县| 吴堡县| 亚东县| 库尔勒市| 吐鲁番市| 云和县| 根河市| 无为县| 岢岚县| 静海县| 个旧市| 柘荣县| 志丹县| 扶沟县| 贺兰县| 美姑县| 宿州市| 东乡族自治县| 乃东县| 沛县| 江安县| 咸阳市| 高碑店市| 宣恩县| 名山县| 比如县| 建德市| 孟津县|