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的方法是不推荐的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容