处理系统配置变化
很多设备可以在运行时改变系统配置,比如屏幕方向,键盘布局以及语言等。当类似的变化发生时,系统会把运行的activity重启(调用onDestroy(),然后调用onStart(),――哦~,没有调用onRestart()),如果你的activity能跟据这些变化做出相应的处理,那么你的程序将更稳定可爱。
那么如何应付这些变化呢,最好的办法就是写好状态保存/恢复方法们。比如onSaveInstanceState(),onRestoreInstanceState()/onCreate()。
对于系统配置改变的详细信息以及基体应对方法,请观“处理运行时配置变化”一节。
协调activity们
当一个activity启动另一个时,两者都在走生命周期。如果这两个activity之间要共享数据,那么重点要理解当第二个activity被创建时,第一个activity还没有执行到onStop()。开始新一个和结束前一个之间有交集。
当activityA启动ActivityB时,会按以下顺序执行:
1Activity A 的onPause()执行。
2Activity B的onCreate(),onStart(),onResume()依次执行(此时actvityB具有用户焦点)。
3Activity A的onStop()被执行(假设A被B完全遮盖)。
你应跟据这个顺序来管理两者之间的数据传递。比如,如果A要向数据库中写入数据,要保证B在初始化时能读到A写入的完整数据,那么A应在onPause()方法中写入数据,而不能在onStop()中写入。