我正在编写一个 Android 小部件。我想每 1-5 分钟更新一次以监视来自 Web 服务的数据,但我发现 android:updatePeriodMillis
不能少于 30 分钟。
如何使用小部件获得此结果?
最佳答案
为每 1 分钟的调用注册一个 AlarmManager 服务。
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 分钟更新一次会强制您的“更新应用程序小部件”代码驻留在一直运行的内存中,这也会显着消耗电池电量。
关于android - 每 1 分钟更新一次 Android 小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5721548/