【发布时间】:2015-03-04 06:19:35
【问题描述】:
我正在通过关注this tutorial 为 android 创建自定义表盘。我已经实现了广播接收器来检测时间变化,如下所示:
在我的活动中,我有静态块来过滤以下意图:
static {
intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_TIME_CHANGED);
intentFilter.addAction(Intent.ACTION_TIME_TICK);
intentFilter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
}
我的接收器类:
public class MyReciever extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
c = Calendar.getInstance();
Log.d("myapp", "time changed");
hrs = c.get(Calendar.HOUR_OF_DAY);
min = c.get(Calendar.MINUTE);
sec = c.get(Calendar.SECOND);
txt_hrs.setText(String.valueOf(hrs));
txt_mins.setText(String.valueOf(min));
txt_sec.setText(String.valueOf(sec));
}
}
我已经在 oncreate() 中注册了接收者:
MyReciever myReciever = new MyReciever();
registerReceiver(myReciever,intentFilter);
上面的代码在几小时和几分钟内都可以正常工作,但在几秒钟内就不行了。
Intent.ACTION_TIME_TICK 的问题在于它是每分钟广播一次,而不是每秒钟广播一次。
我需要检测表盘上时钟每秒的时间变化。任何人都有“检测每秒时间变化”的解决方案吗?
【问题讨论】:
标签: android android-intent wear-os android-broadcast watch-face-api