我和想要制作游戏的朋友想要使用计时器作为对玩家进行评分的方式,因此我们希望在游戏开始时显示从0开始的屏幕定时器,并在他们停止时停止完成比赛。
我已经查看了一些其他帖子以及android dev网站上的使用Handler和Runnable对象,以使其按照我的意愿工作,但截至目前为止的run()
方法Runnable对象被完全跳过,所以没有做任何事情。现在,我在Activity的onCreate方法中有以下内容:
mHandler = new Handler();
mStartTime = System.currentTimeMillis();
mHandler.removeCallbacks(mUpdateTimeTask);
mHandler.postDelayed(mUpdateTimeTask, 100);
mUpdateTimeTask = new Runnable()
{
public void run()
{
final long start = mStartTime;
long millis = SystemClock.uptimeMillis() - start;
int seconds = (int) (millis / 1000);
seconds = seconds % 60;
mHandler.postAtTime(this,
(start + seconds + 1) * 1000);
elapsed.setText(seconds);
}
};
现在首先,任何人都可以告诉我为什么run()
方法被完全跳过?而且,这是否适用于我们想要做的事情?或者我们应该在其他地方拥有Runnable对象吗?使用不同的方法?这是我们第一次使用计时器,所以任何帮助都表示赞赏!
答案 0 :(得分:3)
也许您需要在mHandler.postDelayed(mUpdateTimeTask, 100)
作业之后致电mUpdateTimeTask = new Runnable()