2011-11-02 68 views
1

我正在開發一款適用於Android 2.1的遊戲安卓延遲/調度方法關注

我的遊戲是一款玩牌遊戲。所以,我想要的是,當我點擊我的一張牌並扔掉之後,我希望AI在2秒後打出他的牌。所以,爲了做到這一點,我希望在輸入2秒後調用其中一個實例方法。

我研究了一些,發現Android類不支持Timer類。我已經使用Handler類,但我沒有提供我想要的。它通常有效,但有時(幾乎一半時間)它失敗,並在我玩完我的卡後立即開始回答。

所以,我想更一般地問一下。在我的情況下,完全實現Android中的這種延遲的最佳方式是什麼(不確定但幾乎完全)?

+1

我會建議你看一下[AsyncTask](http://developer.android.com/reference/android/os/AsyncTask.html)或者更確切地說[CountDownTimer] (http://developer.android.com/reference/android/os/CountDownTimer.html)。 –

回答

1

AsynchTask是最佳選擇,因爲它在UI線程上調度執行(只允許該線程與UI交互)。或者你可以產生新的線程,等待sleep(),然後調用runOnUiThread()。這對你來說可能更容易些,但是如果你的遊戲活動暫停了,你將不得不停止這個線程。 (AsyncTask會自動爲你做這個)