2010-09-01 3 views

ответ

5

Вы можете использовать класс Timer запланировать периодическую задачу с помощью TimerTask вместо AsyncTask

См:

http://developer.android.com/reference/java/util/Timer.html

http://developer.android.com/reference/java/util/TimerTask.html

и обновить пользовательский интерфейс, вы должны следовать этому хорошему учебнику:

http://android-developers.blogspot.com/2007/11/stitch-in-time.html

+0

Thanx :) Работал для меня. –

0

Вы можете сделать это либо на своем onProgressUpdate(), либо на onPostExecute(), исходя из ваших требований.

onProgressUpdate(Progress...), вызывается в потоке пользовательского интерфейса после вызова publishProgress (Progress ...). Время выполнения не определено. Этот метод используется для отображения любой формы прогресса в пользовательском интерфейсе, пока фоновое вычисление все еще выполняется. Например, его можно использовать для анимации индикатора выполнения или отображения журналов в текстовом поле.

onPostExecute(Result), вызывается в потоке пользовательского интерфейса после завершения вычисления фона. Результат вычисления фона передается на этот шаг в качестве параметра.

http://developer.android.com/intl/de/reference/android/os/AsyncTask.html

4

Установка будильника с AlarmManager и позвонить AsyncTask в вашем AlarmReceiver классе.

+0

Hi Macarse, Thanx для ответа. Но можете ли вы рассказать мне, как я могу назвать класс AsyncTask, который является внутренним классом моей активности? –

+0

его следует определять как 'public static class' и называть его: ' (new YourActivity.YourAsyncTask()). Execute(); ' – Macarse

0

Просто укажите одну из возможностей. Вы также можете использовать класс ScheduledThreadPoolExecutor. У него, как правило, больше возможностей TimerTask.

0

Чтобы уточнить ответ macarse, вы действительно можете «set an alarm with AlarmManager and call your AsyncTask in your AlarmReceiver class».

Проблема, которую я поднял в связанном сообщении, все еще стоит: Я не знаю, есть ли какие-либо проблемы с жизненным циклом, связанные с созданием экземпляра AsyncTask из WakefulBroadcastReceiver, то есть я не знаю, может ли приведенное выше решение привести чтобы MyAsyncTask был убит преждевременно.

Смежные вопросы