我有AsyncTask,我在後臺的進度是無限循環。但是,當用戶停止我的應用程序或從我的應用程序返回時(我的應用程序轉到前臺),我需要停止AsyncTask。我該怎麼做?如何在無限循環中停止AsyncTask?
解決方案:
私人布爾做= FALSE;
private class CurTask extends AsyncTask<String, Void, Object> {
protected Void doInBackground(String... args) {
while(!done){
DefaultCurProgress();
publishProgress();
}
}
protected void onProgressUpdate(Void...unused) {
textCur = (TextView)findViewById(R.id.text_cur);
SharedPreferences myPrefs = MyActivity.this.getSharedPreferences("myPrefs", MODE_PRIVATE);
String prefNameDefaultCur = myPrefs.getString(DefaultCur, "");
textCur.setText(prefNameDefaultCur);
}
}
@Override
public void onPause(){
super.onPause();
done=true;
}
@Override
public void onResume(){
super.onResume();
done=false;
}
像任何線程一樣,應該可以在while(keepRunning == true)時使用一個標誌''。 – harism 2012-02-03 15:39:42