生命期TIPS
Android的绝大部分开发都是基于Activity当中的。所有对于掌握他的生命周期至关重要,尤其是对于这种经常可能被“打断”的Activity了。
对于Android的基本状态图,在这不太多说,很多地方都可以参考。以下是我列出的几个地方。
但是,最最需要主要的一点就是你的Activity可能会被Kill掉,这样你的程序会出现潜在的危险!
官网上列举出常见的两个被系统Kill(自己主动结束的不算)掉的情况。
这两种是最常见的被Kill的情况,当然第二个我觉得要更常见一点。因此,为了解决这种非正常Kill的情况Android框架下提供给你一个补救的方法,就是暂存状态。也就是我们经常会在onCreate里面看到的
对于Android的基本状态图,在这不太多说,很多地方都可以参考。以下是我列出的几个地方。
但是,最最需要主要的一点就是你的Activity可能会被Kill掉,这样你的程序会出现潜在的危险!
官网上列举出常见的两个被系统Kill(自己主动结束的不算)掉的情况。
- 系统资源不足
- 屏幕旋转
这两种是最常见的被Kill的情况,当然第二个我觉得要更常见一点。因此,为了解决这种非正常Kill的情况Android框架下提供给你一个补救的方法,就是暂存状态。也就是我们经常会在onCreate里面看到的
protected void onCreate(Bundle savedInstanceState) //这个savedInstanceState
他是个Bundle类型,字面意思就是一捆。也就是说Bundle类型可以用来打包你的暂存状态值。
具体的做法如下:
具体的做法如下:
实现onSaveInstanceState()
以保存暂存变量
实现onRestoreInstanceState()
以恢复暂存变量
还是那句话,大家可以才考官网的做法。
小技巧
如果你觉得,为了一个小小的旋转屏而大费周章感到很不爽,而且你的应用或许根本不用旋转屏,那么你一定会想这样一个办法,我是不是可以取消旋转屏,让我的应用在屏幕发生旋转时不会Kill我的Activity。答案当然是YES!
具体做法可以参见这里
稍微值得注意的一点就是,仅仅加上 android:screenOrientation="portrait"属性是不够的,别忘了
android:configChanges="orientation|keyboardHidden"
好了今天就到此为止了!
具体做法可以参见这里
稍微值得注意的一点就是,仅仅加上 android:screenOrientation="portrait"属性是不够的,别忘了
android:configChanges="orientation|keyboardHidden"
好了今天就到此为止了!