2012-03-16 159 views
0

我目前正在为Android OS开发一款游戏。其中,玩家可以进行活动。每项活动都会为玩家带来“能量”。玩家当前的能量值存储在sqlite表中并显示在主屏幕(home.class)上。当玩家进行活动时,能量值会下降。当能量达到零时,我想要一个倒数计时器将能量值重置为10.正确实施CountDownTimer

到目前为止,我实施它的方式如下。在显示用户健康/能量等级的主屏幕顶部,我显示了CountDownTimer。

定时器工作。但是,当我点击一个按钮并转到不同的活动。然后返回到主屏幕时,计时器已重新启动。我知道这是因为下面的代码运行时我要返回到主屏幕:

Intent i = new Intent(Crime.this, Home.class); startActivity(i);

,因为我想更新一些活动后显示在主屏幕的值开始新Home.class已经开展。

什么是实现CountDownTimer的更好方法?任何帮助将不胜感激......谢谢:)

+0

您可以向Home类中添加refresh()类型的方法并调用该方法而不是创建新实例? – Thomas 2012-03-16 20:24:34

+0

你的意思是这样的? 'public void onBackPressed(){ \t \t super.onBackPressed(); \t \t \t \t \t首页h = new Home(); \t \t \t h.refresh();' – gurpsone 2012-03-16 20:39:42

回答

0

存储您想要重置数据库中的能量的时间(至少一次,你击中),并更新剩余的时间与一个滴答作响的线程的事情。这样你就不需要依赖定时器来完成/重新启动,因为你总是可以重新计算基于时间的时间。当前系统时间