У меня AsyncTask, и мой прогресс в фоновом режиме находится в бесконечном цикле. Но мне нужно остановить AsyncTask, когда пользователь останавливает мое приложение или возвращается из моего приложения (мое приложение переходит на передний план). Как мне это сделать?Как остановить AsyncTask в бесконечном цикле?
Решение:
частное булево сделано = ложь;
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