2013-01-01 22 views
0

在我的Android程序,我用两个日历实例来获得逝去的时间在我的程序,首先我设定的等级开始时间如下:请告诉我是正确的方式来获得经过时间和重置

level_Start_TimeCal = Calendar.getInstance(); 

,在我的线程,我计算经过时间如下:

level_current_TimeCal = Calendar.getInstance(); 
gameTime = level_current_TimeCal.getTimeInMillis()- level_Start_TimeCal.getTimeInMillis();      
dsecs = (gameTime/1000)%60; 
dminutes = (gameTime/(60 * 1000))%60; 
dhours = (gameTime/(60 * 60 * 1000))%60; 

最近,我来到了阅读以下内容:

日历的getInstance方法返回一个Calendar对象,其日历 领域已经与当前日期和时间

我想知道如果我在正确的道路初始化?
我每次创建一个对象的线程运行?
如果是,是否有其他选择避免创建不需要的对象并计算经过时间? 最后一个问题:在某些时候我想在我的重启方法重设时间我刚好我复位方法调用的getInstance如下复位:

public void restart() { 
level_Start_TimeCal = Calendar.getInstance(); 
} 

这是重置日历的正确方法是什么?

回答

2

计算经过时间的最佳方法是使用System.nanotime()

long start = System.nanoTime(); 
//do something 
long end = System.nanoTime(); 

//to get the elapsed time, you can use the TimeUnit utility methods: 
long elapsedInNanos = end - start; 
long elapsedInSeconds = TimeUnit.SECONDS.convert(elapsedInNanos, TimeUnit.NANOSECONDS); 

请注意,它不是一个有用的方法来访问绝对时间。

+0

谢谢你Assyilas ..你重定向到正确的方式 –

相关问题