У меня есть приложение, в котором я подключаюсь к веб-службе для получения данных. Я использую AsyncTask для этого.
Вот фрагмент кода, который я использую в doInBackground:
publishProgress(user.dbsCode() + ": Retrieving Standard Comments");
if (!_sync.isCancelled()) {
result = _dbFiller.fillStandardCommentsTable();
} else {
return null;
}
Когда я проверяю это в моем эмуляторе, кажется, он работает нормально isCancelled получает set & onCancelled () вызывается. Когда я тестирую с помощью своего Galaxy Tablet (работает 3.2 ... мой проект был создан с использованием 2.2), он ударит или пропустит, если будет установлен isCancelled.
Этот процесс может занять некоторое время в зависимости от того, сколько данных загружает конкретный пользователь. Первое, что я делаю, это загружаю список (того, что мы называем) «заданиями» для пользователя. Затем я вызываю отдельные веб-сервисы, чтобы загрузить разные части для «работы». Каждый шаг включает в себя приведенный выше код, где я проверяю, отменена ли моя задача синхронизации. Я действительно потерян. Любые полезные комментарии приветствуются. Даже просто направление. Я так много читал об AsyncTasks, что у меня кружится голова.