остановить асинхронную задачу через 60 секунд

я хочу остановить асинхронную задачу через 60 секунд

я знаю, что есть метод get(time, timeunit), который я должен использовать в doInBackground, но я не знаю, как проверить, истекло ли время ожидания или нет, пожалуйста, предоставьте этот пример кода одной строки.

Спасибо


person abhishek    schedule 24.03.2011    source источник


Ответы (2)


Если я правильно понял ваш вопрос, вы уже знаете, как отказаться от задачи через n секунд, но вам нужно знать, ЕСЛИ она была заброшена?

Согласно документам AsyncTask. будет сгенерировано исключение TimeoutException.

Сделайте что-нибудь вроде:

try {
    //your AsyncTask code
} catch(TimeoutException ex) {
    //your timeout code
}
person firefox1986    schedule 24.03.2011
comment
ну да, я понял, мне пришлось написать оператор возврата в блоке catch. - person abhishek; 24.03.2011

вы можете использовать TimerTask для которого вы можете начать в doInBackround() с расписанием на 60 секунд. в run() из TimerTask просто вызовите остановку для асинхронной задачи.

person Rohit Mandiwal    schedule 24.03.2011