2014-01-14 138 views
0

我正在構建一個在屏幕上移動對象的應用程序,您可以使用按鈕控制它的方向。我希望當我點擊按鈕時,它會立即作出反應。問題是,如果你點擊它已經啓動的線程run()中的while,它將首先移動它應該在點擊之前的對象,然後它纔會對點擊作出反應。重新啓動線程的運行()

所以我認爲,如果有一種方式,點擊它將立即停止run()函數並重新啓動它,也許通過重新啓動線程。

有沒有辦法?

回答

0

在Java中,線程無法重新啓動。但是,您可以循環線程的功能。

此外,立即中斷任何代碼是不可能的,如果可能的話將是非常危險的。
所以你必須設計你的代碼來經常檢查它是否需要取消執行,可能由Thread.interrupted()表示。

從我對您實際問題的理解中,您不需要重新啓動run()。 從你給我們的小信息猜測,我推薦看看Animators

另一種選擇是永久移動對象並設置每秒的速度(x和y)。因此,您不需要重新啓動,但只能更改這些變量。

如果您需要更多信息或者我誤解了您的問題,請發表評論。