Я думаю, вам нужно нацелиться на onSaveInstanceState
и либо onRestoreInstanceState
, либо использовать для этого функциональность onCreate
(onRestoreInstanceState
вызывается после onStart
, тогда как onCreate
вызывается до onStart
- так что вам нужно будет использовать способ onCreate
, хотя я перечислю оба ниже)
Сохраните ваше состояние в onSaveInstanceState
вашей деятельности - вам может понадобиться написать методы получения в свой класс 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
для восстановления состояния вашего потока.