Activity--基础
(一)基础
·生命周期
完整生命期(Entire lifetime): onCreate() ->onDestroy()
可见生命周期(Visible lifetime):onStart()->onStop()
前台生命周期(foreground lifetime):onResume()->onPause()
·保存Activity的状态
当界面在用户不知情的情况下销毁时,为了良好的用户体验,当用户再次进入界面时希望界面还是原来的样子,这时候就用到了一个重要的回调方法onSaveInstanceState(),当界面容易被销毁的时候,系统就会调用该方法。在onCreate()和onRestoreInstanceState()方法里,都会接受到存储信息的bundle。
即使我们没有实现onSaveInstanceState(),默认的实现会被调用,在默认的实现里会相应的调用View的onSaveInstanceState(),所以也可以保存状态。只有View设置了id,系统才会为我们保存状态。
onSaveInstanceState()不能保证一定会被 调用,所以我们需要保存持久化的数据时,我们需要在onPause()中实现。
·处理Configuration发生改变
当设备的Configuration(屏幕的方向,键盘的是否可获取,语言。。。)改变时,系统会重建Activiy(onDestory()->onCreate()),为了良好的a用户体验,这时候onSaveInstanceState()就发挥作用了。
当我们想避免系统的重建,可以自行处理配置改变。
(1)在AndroidManifest.xml的相应<Activity>标签配置android:configChanges="orientation|keyboardHidden"
(2)实现回调方法。onConfigurationChanged()
(二)Fragment
Fragment是Acitivity的一部分,有自己的生命周期,但是它的生命周期完全受host Acitvity的影响。
(三)Loaders
从Android3.0开始,引入Loaders,它方便异步加载数据到Activity或者Fragment。Loaders的特点有:
(1)在每个Activity和Fragment都可获取
(2)它提供异步加载数据
(3)监控数据源,当数据源发生变化时,传送新的数据
(4)当Configuration发生改变时,自动重连,所以没有必要重新查询数据。
这里需要熟悉API,写个demo
待续。。。