每1分钟更新一次android小部件

Cri*_*ris 10 android android-widget

你好我正在写一个Android Widget; 我想每隔1-5分钟更新一次,以监控来自webservice的数据,但我发现android:updatePeriodMillis不能少于30分钟....我怎么能用Widget获得这个结果?

谢谢和问候c.

Pri*_*ank 17

每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);
Run Code Online (Sandbox Code Playgroud)

但是,将更新推送到app小部件是一项昂贵的操作.每1分钟更新一次会强制你的"更新应用程序小部件"代码驻留在内存中,这些代码一直在运行,这也会非常耗费电池.

  • 我们应该把这段代码放在哪里?作为一个android初学者,这对我没有帮助...... (2认同)
  • 这不适用于Android 6.0+。打ze模式通常不适用于setRepeating()。每当警报响起时,我都尝试了所有方法,甚至是`setExactAndAllowWhileIdle()`,但它一直没有响起,或者在我想要的1分钟之后响了太多时间。 (2认同)