Я выполняю простую асинхронную операцию с Android, но поскольку я хочу выполнить действие пару раз, я не использую AsyncTask, вместо этого я использую механизм Thread / Runnable с Handler для обработки сообщений и персонала.Но в один момент, когда мне нужно выполнить вторую операцию, мне нужно отменить предыдущую операцию, если она все еще активна.
У меня есть что-то вроде этого:
private void exec() {
new Thread(new Runnable() {
public void run() {
mBind.exec(3);
}
}).start();
}
Затем в exec(int a) У меня есть целое число, например:
for(int i = 0; i<=res.lenght; i++) {
updateGui();
}
Но в какой-то момент метод exec () вызывается во второй раз, и графический интерфейс обновляется с предыдущими результатами тоже (мне нужны только результатыиз нового (2-го) запроса).
Я знаю, что есть способ сделать это с помощью FutureTask и поиграть с помощью cancel () или с исключением «throw ThreadDead» для Thread, но мне просто интересно, могу ли я это сделатьтак же, как я начал в первую очередь.
спасибо!