你好,感謝您的關注,爲什麼AsyncTask不停止?
我有下面的代碼,這
- 啓動時按下按鈕,
和
- 應停止的的AsyncTask AsyncTask當按鈕被釋放時。
但這種情況不會發生......
(中的AsyncTask繼續進行,直到它自然結束,達到MAXX值時)
請我究竟做錯了什麼?
class right extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... unused) {
while (x < MAXX) {
if (x < MAXX)
x++;
publishProgress();
SystemClock.sleep(40);
}
return (null);
}
@Override
protected void onProgressUpdate(Void... unused) {
horizontal.scrollTo(x, 0);
Log.e("x", Integer.toString(x));
}
@Override
protected void onPostExecute(Void unused) {
}
}
left.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
right righttask = new right();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
righttask.execute();
break;
case MotionEvent.ACTION_UP:
righttask.cancel(true);
Log.e("","SHOULD STOP ASYNCTASK!!!");
break;
}
return false;
}
});
如果你讀了'cancel'的文件,你會看到,你希望它是什麼沒有做。 (順便說一下,我沒有看到if條件的要點。) – njzk2