【发布时间】:2015-07-29 02:34:02
【问题描述】:
我正在使用 Android 创建一个时钟小部件。我测试了时钟,逻辑看起来不错,但我需要让它每分钟更新一次。
我在我的 XML 中将 updatePeriodMillis 设置为 60000,但 Android 将其限制为 30 分钟,因此它仅每半小时更新一次。
我做了一些研究,发现 Service 或 AlarmManager 可能有效,但我调用的方法需要通过 onUpdate() 方法传递给它的 AppWidgetManager 和 AppWidgetId。
我尝试了两种(类似的)方法来使分钟更新正常工作:
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 分钟内仍无法正常工作。
【问题讨论】:
标签: android timer widget timertask appwidgetprovider