如何让Chronometer在后台运行?

时间:2014-12-12 11:41:25

标签: android chronometer

我在Activity(1)A Chronometer并且运行正常。我点击Button并开始Chronometer时间计数。

我试图让分数Chronometer改变Activity(2),但没有成功。

在这个新的Activity(2)中没有布局Chronometer一个组件。 我尝试将Chronometer(1)的Activity对象传递给另一个Activity(2)并继续计数,但仍继续使用此计时器并提供新的start()不计算时间。 我试图通过Chronometer传递组件Intent.putExtra()并创建一个内存类。

我尝试在隐身布局中创建Activity(2)Chronometer并仅传递Chronometer.getBase()的值并给出start(),但不计算时间。 在Activity(2)中应继续记录时间并返回Activity(1)Chronometer应该是可见的已用时间。

Activity(1)和(2)与finish()一起死亡。

2 个答案:

答案 0 :(得分:1)

您只需要保留对原始开始时间的引用。有关详细信息,请参阅Chronometer docs,但要点是:

long startTime = SystemClock.elapsedRealtime();
chronometerInstance.setBase(startTime);
chronometerInstance.start();

然后您可以将startTime传递给其他活动,并在您需要启动计时器的任何时候继续使用相同的值。

答案 1 :(得分:1)

感谢您的回复!我曾尝试过这种媒介,但没有成功。事实上,我更好地分析了我的代码,发现我在破坏自己。在将其设置为开始计数之后,创建了一个新的计时器实例。所以它没有考虑到。并且利用它们必须使用更多这种代码时间的方式:

long restartTime = getIntent().getLongExtra(Constantes.TIME, 0) + SystemClock.elapsedRealtime();

这是将当前的getBase设置为前一个Activity中的Chronometer。

并且将Activity调用以下putExtra():

long valueChrono = chronometer.getBase()
                    - SystemClock.elapsedRealtime();

谢谢你,对不起有任何问题!