【发布时间】:2014-08-18 02:32:00
【问题描述】:
我正在尝试实现一个时间计数器(从 0 开始计数),它基本上获取保存的时间变量(startTime,一旦用户点击按钮就创建)并减去当前时间(Calendar.getInstance( ) 也许?) 所以结果是两次之间的差异(在 HH:MM:SS 中)。此方法将在计时器的每个刻度上运行,以便文本视图每秒更新一次,从而有效地创建我的计时器。
现在,我选择这条迂回路线,因为这是我能想到的唯一方法,即使应用程序被终止,也能节省经过的时间。这是因为 startTime 变量在创建后立即保存到 SharedPreferences 中,并且在每个 Tick 期间,系统仅通过查找 startTime 和当前时间之间的差异来当场计算我的计时器。
现在,我尝试将我的 startTime 设置为 Calendar 变量并进行如下初始化:
Calendar startTime = Calendar.getInstance();
然后
elapsedTime = startTime - Calendar.getInstance();
但显然,这行不通。
在一个用 C# 编写的类似项目中,尽管使用了 DateTime 变量,但我能够让它工作......在 Android 中有没有这样的方法?
如果这太复杂了,有没有更好的方法来保存我的计时器进度?
请,谢谢!
【问题讨论】:
-
Java 不支持运算符重载,因此除了原始数字类型(甚至
BigInteger)之外,无法在任何东西上使用-运算符。 -
如果您要对这些时间值做的唯一事情是减去它们以获得经过的时间,那么
System.currentTimeMillis是否足以满足您的目的?
标签: java android timer chronometer