我的朋友和我試圖創建一款遊戲的玩家想要使用計時器來評分玩家,所以我們希望在遊戲開始時顯示一個從0開始的屏幕計時器,當他們完成時停止遊戲。Android應用程序中的屏幕計時器?
我已經看了一些其他帖子以及在android開發網站中使用Handler和Runnable對象,以使其工作正常,但是到目前爲止,Runnable對象中的run()
方法正在被完全跳過,所以沒有做任何事情。現在,我有我們的活動的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對象?使用不同的方法?這是我們第一次使用計時器,所以任何幫助表示讚賞!
是你所有的代碼?你從來沒有真正在這裏調用run方法。你需要調用mUpdateTimeTask.start(); – ethan
不,postDelayed()不需要start() –