activity异常生命周期下的退出数据保存的方法

当activity切换屏幕方向导致生命周期变化的时候activity会重新调用onCreate方法。这个时候activity会调用onPause,onStop,onDestory,但是在调用onStop之前会调用onSaveInstance这个方法来保存数据。这个方法和onPause调用的先后顺序不能够明确的界定。当activity重新调用onCreate方法的时候我们可以利用onCreate方法中的Bundle对象savedInstanceState来获取保存的对象。但是一定要进行非空判断,因为正常情况的下的生命周期下这个值为空。另外一种方法就是重写onRestoreInstanceState方法,通过这个方法中的Bundle对象来获取保存的值。这时候不用进行非空判断。其实我们也可以避免因为横竖屏切换而导致的生命周期的变化。我们可以在清单文件中固定屏幕的方向为landscape或是protrait。或是设置ConfigChanges:orientation|keyBoardHidden.


猜你喜欢

转载自blog.csdn.net/xjz19930319/article/details/72824083