私は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