Android Java AsyncTask является отмененной проблемой - PullRequest
2 голосов
/ 09 февраля 2012

У меня есть приложение, в котором я подключаюсь к веб-службе для получения данных. Я использую 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, что у меня кружится голова.

1 Ответ

0 голосов
/ 09 февраля 2012

При каких обстоятельствах вы отменяете загрузку?

Поскольку вы на самом деле не можете управлять планировщиком, возможно, ваши задачи выполняются до завершения, прежде чем вы сможете отменить их.Поскольку реальное оборудование, вероятно, быстрее, чем ваш эмулятор, это кажется возможным.

Отмена уже законченного AsyncTask ничего не делает, если я помню.Вы уверены, что ваши задачи не выполнены?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...