Android 常用组件界面组件(一)| 青训营笔记

207 阅读2分钟

Android 常用组件界面组件(一)| 青训营笔记

这是我参与「第四届青训营 」笔记创作活动的第三天

界面组件

界面组件说明
1.1Activity界面容器
1.2fragment轻量级界面容器
1.3service后台服务
1.4broadcast广播组件
1.5ContentProvider数据组件
1.6Intent意图组件

1.1 Activity

Activity生命周期

  • onCreate(): 创建时回调,一般在此处创建视图和绑定数据。
  • onStart(): 已启动,即将进入前台。
  • onResume(): 与用户开始交互,位于Activity栈顶
  • onPause():Activity失去焦点或已暂停,Activity界面部分课件,下一个生命周期是onResume()或onStop()
  • onStop():Activity不再可见,下一个回调是OnRestart()或OnDestory()
  • OnDestory():销毁activity,释放该Activity的所有资源
  • OnSaveInstanceState():在非正常关闭时回调,用于保存数据,不支持持久化数据
  • onRestoreInstanceState()/ onCrate():用于恢复数据

配置改变场景

  1. 销毁:Resumed-onSaveInstanceState()-onPause() - onStop() - onDestroy()
  2. 重建: onCreate() - onStart() - onRestoreInstanceState() - onResume()

配置改变不重建Activity:AndroidManifest中配置Activity节点的configChange属性

  • local:语言改变
  • fontScale: 字体大小改变
  • orlentation: 旋转屏幕
  • keybordHidden:键盘显示隐藏

配置改变:

onConfigurationChanged()

启动模式

  • standard :默认模式,允许重复
  • singleTop:不允许重复
  • singTask: 不允许同个栈内重复
  • singleInstance:整个系统不允许重复

1.2 fragment

基本用法

  1. 创建Fragment布局文件
  2. 创建Fragment子类,加载布局文件
  3. Activity 加载Fragment 3.1 静态加载:布局中绑定 3.2 动态加载: FragmentManager加载

生命周期

Fragment生命周期
onAttach()Fragment 和 Activity建立关联时调用
onCreateView()当Fragment 创建视图时调用
onActivityCreated()Activity 的onCreate()方法已返回时调用
onDestroyView()当Fragment中的视图被移除时调用
onDetach()Fragment 和Activity取消关联时调用
  1. 启动:onAttach() - onCreate() - onCreateView()-onActivityCreated() - onStart() - onResume()- Resumed

  2. 退出: Resumed - onPause() - onStop() - onDestoryView()-onDestory()-onDetach()

  3. 部分覆盖:Resumed - onPause() - Paused

  4. 部分遮挡恢复:Paused - onResume() - Resumed

  5. 完全覆盖:Resumed - onPause() - onStop() - onDestroyView()

  6. 完全遮挡恢复:onCreateView() - onActivityCreated() -onStart() - onResume() - Resumed

注:Fragment生命周期可通过FragmentTransaction.setMaxLifecycle()手动干预

Fragment 与 Activity 交互

组件获取

1 Fragment获取Activity中的组件: getActivity().findViewByld(R.id.xxx)

2 Activity获取Fragment中的组件: getFragmentManager.findFragmentByld(R.id.fragment_xx)

数据传递

1 Activity传数据给Fragment: setArguments(Bundle bundle)

2 Fragment传数据给Activity:

a通过对象直接传递((方法调用/接口调用)

b通过viewmodel / handler / broadcast / eventbus等通信

友情链接

Android 常用组件界面组件(一)| 青训营笔记

Android 常用组件界面组件(二)| 青训营笔记

Android 常用组件通信组件| 青训营笔记