我自定义了一个view,每次这个view一触碰,就执行方法calendar.get(calendar.second);来获取当前系统秒数,可是每一次触碰后,在MotionEvent.action_down下,系统秒数都是第一次执行后得到的结果,这是为什么?此方法重新执行,不理性得到最新的秒数吗,
我觉得问题是因为,你只初始化了一次Calender calender =Calender.getInstance(),而以后都是用这个calender获取秒数的,而对于同一个calender实例,秒数肯定一样。就是,Calender.getInstance返回的是系统当前时间Calender的实例,但是它获取以后是不变的,不会随着系统时间的推移而更新,要获取实时的实例,要在每次调用时重新获取,即每次点击view时都执行 calender =Calender.getInstance()才能到达你要的效果。
应该是最新的描述,可能是你的程序两次执行的间隔太小,建议你调到毫秒级别上试一下。
你应该写在一个线程当中每隔一段时间获取时间毫秒数,用System.currentTimeMillis();也可以获取
new Thread(){
run(){
while(true){
System.currentTimeMillis();
Thread.sleep();
}
};
}.start();
Calender calender =Calender.getInstance()
每次用都要重新获取一次。