(一)基础

·生命周期

完整生命期(Entire lifetime): onCreate() ->onDestroy()

可见生命周期(Visible lifetime):onStart()->onStop()

前台生命周期(foreground lifetime):onResume()->onPause()

Activity--基础


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

Activity--基础 Activity--基础


(三)Loaders

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

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

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

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

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

这里需要熟悉API,写个demo

待续。。。














相关文章:

  • 2021-12-26
  • 2021-04-13
  • 2021-12-16
  • 2021-07-25
  • 2021-06-13
  • 2021-11-29
  • 2022-01-06
  • 2021-04-29
猜你喜欢
  • 2021-09-01
  • 2021-06-28
  • 2021-07-01
  • 2021-10-12
  • 2021-12-31
相关资源
相似解决方案