2013-11-27 162 views
1

我目前正在創建一個具有MainActivity和SurfaceView的遊戲。 SurfaceView不是它自己的活動,而是在MainActivity中簡單調用。如何從MainActivity中暫停/恢復SurfaceView?

我所試圖做的是有上,將暫停對SurfaceView呈現在MainActivity(暫停/恢復)按鈕,並點擊時再恢復它。

我不完全確定我會如何做到這一點,在我的SurfaceView(GameView)中我可以阻止我的GameLoopThread,但如果我嘗試重新啓動它(暫停然後恢復遊戲),它什麼也不做。

我試圖與暫停/恢復活動本身以及試圖將布爾運行中運行我的SurfaceView但既不似乎工作。

任何想法,將不勝感激!

回答

2

您可以在SurfaceView類中創建一個像布爾型的標誌,如isRunning = false;然後在開始線程之前檢查它。還要在表面視圖中創建兩個方法onPause()和onResume()。

onPause(){ 
    isRunning=false; 
    // make thread null; 
} 
And 
onResume(){ 
isRunning=true; 
} 

接受調用這兩個方法的onPause()和onResume()方法。

+0

我現在擁有的是我的SurfaceView,它使用我的GameLoopThread。當我進入暫停按鈕時,我嘗試將我的GameLoopThread布爾值設置爲false(不運行),但是當我點擊我的繼續按鈕(將GameLoopThread布爾值設置爲true)重新運行我的線程時,它什麼也不做。 – Bedimindtricks

+1

是否已經實現了Activity類的onPause()和onResume()方法,並在那裏調用了SurfaceView的onPause()和onResume()方法? –

+0

哦,我不知道我需要我的SurfaceView中的onPause()和onResume()方法。這些只包括super.onPause()和super.onResume()? – Bedimindtricks