public class ProgressBarAsyncTaskextends AsyncTask {
private TextViewtextView;
private StringvirtualIp;
public ProgressBarAsyncTask(TextView textView,String virtualip) {
super();
this.textView = textView;
this.virtualIp= virtualip;
}
/**
* 這里的Integer參數(shù)對(duì)應(yīng)AsyncTask中的第一個(gè)參數(shù)
* 這里的String返回值對(duì)應(yīng)AsyncTask的第三個(gè)參數(shù)
* 該方法并不運(yùn)行在UI線程當(dāng)中舆逃,主要用于異步操作,所有在該方法中不能對(duì)UI當(dāng)中的空間進(jìn)行設(shè)置和修改
* 但是可以調(diào)用publishProgress方法觸發(fā)onProgressUpdate對(duì)UI進(jìn)行操作
*/
? ? @Override
? ? protected String doInBackground(Integer... params) {
if (pbat.isCancelled()){
return null;
}else {
sp=mcontext.getSharedPreferences("userConfig",Context.MODE_PRIVATE);
final Stringserverip=sp.getString("serverip","");
final Booleanforward=sp.getBoolean("forward",false);
return String.valueOf(SpiceCommunicator.GetVMNetworkDelay(virtualIp,forward,serverip));
}
}
/**
* 這里的String參數(shù)對(duì)應(yīng)AsyncTask中的第三個(gè)參數(shù)(也就是接收doInBackground的返回值)
* 在doInBackground方法執(zhí)行結(jié)束之后在運(yùn)行戳粒,并且運(yùn)行在UI線程當(dāng)中 可以對(duì)UI空間進(jìn)行設(shè)置
*/
? ? @Override
? ? protected void onPostExecute(String result) {
if (pbat.isCancelled()){
return ;
}else {
Log.e("networkDelay",result+"");
if(result.equals("-1")){
textView.setText("連接桌面超時(shí)");
}else {
textView.setText("連接正常路狮,網(wǎng)絡(luò)延遲" + result+"ms/s");
}
notifyDataSetChanged();
}
}
//該方法運(yùn)行在UI線程當(dāng)中,并且運(yùn)行在UI線程當(dāng)中 可以對(duì)UI空間進(jìn)行設(shè)置
? ? @Override
? ? protected void onPreExecute() {
//textView.setText("開始執(zhí)行異步線程");
? ? }
/**
* 這里的Intege參數(shù)對(duì)應(yīng)AsyncTask中的第二個(gè)參數(shù)
* 在doInBackground方法當(dāng)中,蔚约,每次調(diào)用publishProgress方法都會(huì)觸發(fā)onProgressUpdate執(zhí)行
* onProgressUpdate是在UI線程中執(zhí)行奄妨,所有可以對(duì)UI空間進(jìn)行操作
*/
? ? @Override
? ? protected void onProgressUpdate(Integer... values) {
if (pbat.isCancelled()){
return ;
}
}
}