我想要一个小部件,显示用户启动跟踪公共汽车出发的倒计时.我每隔几分钟就要更新小部件,从用户启动跟踪到总线已经离开(即时间用完)时.
这个小部件需要比updatePeriodMillis允许的频率更新,每30秒钟更新一次.我估计每一分钟一次.
作为Android编程的新手,我可以想到几种方法来做到这一点,但是我可能会以一种消耗太多电池等的方式来完成,所以我正在寻找更多有经验的Android开发人员的一些见解.
如何启动计时器?如何从我的应用程序运行时访问小部件实例?等等.
解决方法
我会注册一个警报,每1分钟启动我的服务,该服务将更新小部件UI
final Intent intent = new Intent(context,UpdateService.class); final PendingIntent pending = PendingIntent.getService(context,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);
AlarmManager.ELAPSED_REALTIME不会在设备睡眠时不会影响设备的电池寿命.