Обновление виджетов android каждые 1 минуту
Привет я пишу виджет Android; я хотел обновлять его каждые 1-5 минут для мониторинга данных из webservice, но обнаружил, что android:updatePeriodMillis не может быть меньше 30 минут .... как я могу получить этот результат с помощью виджета?
благодарности и поздравления c.
2 ответов
зарегистрируйте службу AlarmManager для каждого 1-минутного вызова.
final Intent intent = new Intent(context, UpdateService.class);
final PendingIntent pending = PendingIntent.getService(context, 0, intent, 0);
final AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarm.cancel(pending);
long interval = 1000*60;
alarm.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(),interval, pending);
однако нажатие обновлений на виджеты приложений является дорогостоящей операцией. Обновление каждые 1 мин заставит ваш код "обновить виджет приложения" быть резидентом в памяти, которая продолжает работать все время, и это также съест батарею довольно значительно.
использовать Handler
to sendMessageDelayed(..)
сообщение или postDelayed(..)
a Runner
.
new Handler().postDelayed( new Runnable() {
public void run() { ... },
60000 /* one minute */
);