SDK Android v15 chạy trên thiết bị 2.3.6.AsyncTask.onCancelled() không được gọi sau khi hủy (đúng)
Tôi gặp sự cố trong đó onPostExecute()
vẫn đang được gọi khi tôi gọi cancel()
trong một cuộc gọi doInBackground()
.
Đây là mã của tôi:
@Override
public String doInBackground(String... params) {
try {
return someMethod();
} catch (Exception e) {
cancel(true);
}
return null;
}
public String someMethod() throws Exception {
...
}
Tôi buộc someMethod()
để ném một ngoại lệ để kiểm tra này ra, và thay vì onCancelled được gọi, tôi luôn luôn quay trở lại onPostExecute()
. Nếu tôi kiểm tra isCancelled()
giá trị trả về là đúng, vì vậy tôi biết rằng cancel(true)
đang được thực thi.
Bất kỳ ý tưởng nào?
chúng không được gọi là ... – Radu
@Radu Tôi không biết mã bạn đang sử dụng hoặc tác vụ bạn đang cố thực hiện. Bạn có thể là tốt nhất để bắt đầu một câu hỏi mới nếu bạn đã cố gắng để làm một cái gì đó tương tự như thế này và đang nhận được vấn đề. – Eric
quan điểm của tôi là tôi không thể @ ghi đè lên kết quả onCancelled (SomeType) và onCancelled() đơn giản. Ngoài ra, nếu tôi đang nhắm mục tiêu phiên bản Android cũ, onCancelled() sẽ không được gọi ... – Radu