我正在使用 Android 创建一个时钟小部件。我已经测试了时钟,逻辑似乎很好,但我需要让它每分钟更新一次。
我在我的 XML 中将 updatePeriodMillis 设置为 60000,但 Android 将其限制为 30 分钟,因此它仅每半小时更新一次。
我做了一些研究,除了我调用的方法需要通过 onUpdate() 方法传递给它的 AppWidgetManager 和 AppWidgetId 之外,Service 或 AlarmManager 可能有效。
我尝试了两种(类似)方法来使分钟更新正常工作:
static void updateAppWidget(final Context context, final AppWidgetManager appWidgetManager,
final int appWidgetId) {
final Handler mHandler = new Handler();
TimerTask minuteTask = new TimerTask() {
@Override
public void run() {
mHandler.post(new Runnable() {
@Override
public void run() {
//Do Stuff
});
}
};
timer = new Timer();
// schedule the task to run starting now and then every minute
timer.scheduleAtFixedRate(minuteTask, 0l, 1000 * 60);
}
和:
static void updateAppWidget(final Context context, final AppWidgetManager appWidgetManager,
final int appWidgetId) {
TimerTask minuteTask = new TimerTask() {
@Override
public void run() {
//Do stuff
}
};
timer = new Timer();
// schedule the task to run starting now and then every minute
timer.scheduleAtFixedRate(minuteTask, 0l, 1000 * 60);
}
很感谢任何形式的帮助。
谢谢。
编辑:在我调试和发布这篇文章的时间里,我最终将应用程序安装了半个小时。首次调用 onUpdate() 半小时后,计时器似乎已启动,但在最初的 30 分钟内仍无法正常工作。