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的影响。

Fragment生命周期 


(三)Loaders

从Android3.0开始,引入Loaders,它方便异步加载数据到Activity或者Fragment。Loaders的特点有:

(1)在每个Activity和Fragment都可获取

(2)它提供异步加载数据

(3)监控数据源,当数据源发生变化时,传送新的数据

(4)当Configuration发生改变时,自动重连,所以没有必要重新查询数据。

这里需要熟悉API,写个demo

待续。。。














猜你喜欢

转载自blog.csdn.net/xiaqazwsx/article/details/78387967