APP的状态发生改变时

有时候APP的状态会发生改变,从而导致我们丢失一些数据和信息。比如Activity在onDestroy方法之后会丢失activity实例中所引用的信息,而我们又想保存这些信息,比如在EditText中的text、ListView中的Scroll position.

在这种情况下,最好的想法就是调用想用的onSaveInstanceState方法,比如Activity、View下得onSaveInstanceState()方法保存想要保存的信息,他可以使得相应的实例在销毁之后依旧保存相关的数据信息,在实例恢复时可以载入已保存的数据信息。

对于调用了onSaveInstanceState()方法的情况,可以使用onRestoreInstanceState()方法从bundle中恢复获得在onSaveInstanceState()方法中保存的数据信息。

对于Activity, 如果不希望因为横竖屏切换从而造成Activity实例重载,造成数据丢失的话,可以使用android:screenOrientation属性固定Activity的显示模式。之后,在横竖屏切换时,Activity将不会销毁,重新创建实例,也就不会因此原因从而造成Activity数据的丢失。

在Activity下,还有一种方法可以应对这样的Configuration changes。 通过在android:configChanges 中设定相应的属性,从而使得该Activity在面对这些属性时,不会restart,而是调用onConfigurationChanged()方法。   但是这种应对Configuration changes的方法是不推荐的。

你可能感兴趣的:(APP的状态发生改变时)