久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

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 下一頁

關鍵詞:

評論


相關推薦

技術專區

關閉