我正在使用AppWidgetProvider为Android主屏幕制作一个时钟小部件。
我让它调用TImerTask类,使用以下代码更新我的所有值:
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
{
Timer timer = new Timer();
timer.scheduleAtFixedRate(new MyTime(context, appWidgetManager), 1, 1000);
}
在TimerTasks run()
中,我正在为相关值设置一堆文本视图。
我的问题是,这似乎工作正常,但它使我的主屏幕无响应,可能是因为每秒都更新它。
如何修复此问题并仍然在正确的时间更新显示屏? (我只需要看几分钟而不是秒,但我希望分钟在正确的秒钟内改变。)
答案 0 :(得分:3)
您可以收听ACTION_TIME_TICK广播。当时间改变时,它每分钟都会被发布。 http://developer.android.com/reference/android/content/Intent.html#ACTION_TIME_TICK
代码示例:
http://kfb-android.blogspot.com/2009/04/registering-for-timetick-after-reboot.html
http://www.hostingjava.it/-frusso/android/tips/tips_0002.jsp
答案 1 :(得分:0)
使用AlarmManager
。设置重复闹钟的时间。警报响起时更新您的应用小部件。