2013-08-26 3 views
1

Моя проблема заключается в том, что я хочу, чтобы приложение загружало некоторую информацию из моей базы данных каждую неделю. Это походит на новую акцию каждую неделю и будет обновляться в базе данных каждую пятницу.Android Как создать повторяющуюся задачу, которая будет проходить каждую пятницу?

Я знаю, как проверить, в какой день недели он использует календарь.

Но я не знаю, как узнать, когда произойдет следующая встреча в пятницу.

Можно ли делать или я должен делать это еженедельно, начиная со дня установки приложения?

+0

https://github.com/commonsguy/cwac-wakeful – Selvin

+0

Используйте сигнализацию! –

+0

Можете ли вы использовать сигнализацию, чтобы не запускать эту операцию, но чтобы обеспечить ее выполнение, когда действие будет открыто? –

ответ

1

Сохраните временную метку вашего последнего обновления в SharedPreferences. Используйте AlarmManager с INTERVAL_DAY. Когда он пробуждает ваше приложение, проверьте, не пятница, или прошло более 156 часов с момента последнего обновления. Если это так, запустите обновления.

В качестве альтернативы, проверьте последнее время обновления при запуске, и если прошло более шести дней с момента последнего обновления, обновите его.

+0

это не так просто, как вы думаете ... все тревоги разрываются после каждой загрузки ... вот почему он должен использовать cwac-wakeful :) ... проверьте: 'AlarmManager: запуск служб в Time' в http : //commonsware.com/AdvAndroid/wakeful.pdf – Selvin

+0

Очень часто установить будильник на 'BOOT_COMPLETED'. 'cwac-wakeful' отлично подходит для того, что он предназначен, но это слишком много для еженедельных обновлений. Для них точное время не требуется, и неточно повторяющийся сигнал тревоги будет идеально подходит. Фактически, 'cwac-wakeful' может даже отрицательно повлиять на батарею. – 323go

+1

Я бы предпочел не разбудить устройство, а только проверить, когда приложение открывается, где он будет проверять, прошло ли оно в прошлую пятницу, что он сохранил запись. –

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