我想你需要針對onSaveInstanceState
,要麼onRestoreInstanceState
或使用onCreate
功能來做到這一點(onRestoreInstanceState
onStart
後調用,而onCreate
被onStart
之前稱爲 - 所以你需要使用這樣的方式onCreate
的事情,雖然我將列出以下兩種)
保存狀態在活動onSaveInstanceState
- 你可能需要寫getter方法到您的surfaceView類:
protected void onSaveInstanceState(Bundle outState) {
outState.putInt(YourSurfaceViewClass.SOME_ID, surfaceViewClass.getVar());
super.onSaveInstanceState(saveBundle);
}
個
和還原在onCreate
值:
public void onCreate(Bundle savedInstanceState) {
if (savedInstanceState != null){
value = savedInstanceState.getInt(YourSurfaceViewClass.SOME_ID);
}
}
或restoreInstanceState
:
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
value = savedInstanceState.getInt(YourSurfaceViewClass.SOME_ID);
}
當您訪問首屏,然後用onCreate
來恢復你的線程的狀態,這些方法會被調用。
你沒有提到你的問題中的遊戲引擎!你的問題是一個普遍問題,但你在特殊情況下解決了它。 –
這裏的問題與線程有關,而不是遊戲引擎的實現;我在這種情況下提出的解決方案是,在實現任何管理狀態的遊戲引擎實現時,不會從'Thread'繼承。 – areyling