diff --git a/app/src/main/java/com/hippo/scene/Scene.java b/app/src/main/java/com/hippo/scene/Scene.java index 57ba94300..cc95f7786 100644 --- a/app/src/main/java/com/hippo/scene/Scene.java +++ b/app/src/main/java/com/hippo/scene/Scene.java @@ -179,16 +179,20 @@ public abstract class Scene { } protected void onSaveInstanceState(Bundle outState) { - SparseArray states = new SparseArray<>(); - mSceneView.saveHierarchyState(states); - outState.putSparseParcelableArray(getStateKey(), states); + if (mSceneView != null) { + SparseArray states = new SparseArray<>(); + mSceneView.saveHierarchyState(states); + outState.putSparseParcelableArray(getStateKey(), states); + } } protected void onRestoreInstanceState(@NotNull Bundle savedInstanceState) { - SparseArray savedStates - = savedInstanceState.getSparseParcelableArray(getStateKey()); - if (savedStates != null) { - mSceneView.restoreHierarchyState(savedStates); + if (mSceneView != null) { + SparseArray savedStates + = savedInstanceState.getSparseParcelableArray(getStateKey()); + if (savedStates != null) { + mSceneView.restoreHierarchyState(savedStates); + } } }