這是我做過什麼:
@Override
public void surfaceCreated(SurfaceHolder arg0) {
if (thread.getState() == Thread.State.TERMINATED){
CreateThread(getHolder(),getContext());
}
thread.setRunning(true);
thread.start();
}
- 在CreateThread的,你應該有線程=新MyThread的(...);
- setRunning(boolean mRun)使用布爾值來啓動/停止運行功能(我想我受到了LunarLander的啓發);
如果您想正確使用onPause/onResume,請不要將線程使用的變量放在線程中(如LunarLander所做的那樣)。我建議你做這樣的:
// Variables declarations
public MyGameThread CreateThread(...){
thread = new MyGameThread(holder, context, new Handler() {
// and so on....
});
}
當你穿過的onPause /的onResume,你的線程將被銷燬,reneweled,但如果你把你的變量外,你可以繼續後使用這些數據。
如果你有保存一些重要的東西,利用這一選項之一:
- SharedPreferences:一個XML將被創建並用,即使該應用程序結束之後仍然存在變量保存在本地;
- 一個SQL數據庫,如果你將管理超過5-10個變量,因爲在這種情況下使用前一個選項將會很困難。
可能的重複[如何暫停/恢復線程在Android?](http://stackoverflow.com/questions/6776327/how-to-pause-resume-thread-in-android) – Wroclai
可悲的是。它沒有工作。 –