我想你需要针对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