activity组件
activity就是android应用提供给用户作为交互界面的组件,是给app绘制UI的窗口,在activity中可以完成界面样式的设置、布局的管控、数据信息显示等内容。而要想activity被android识别并实现功能,则需要在manifest文件中定义activity。
<manifest>
<application...>
<activity android:name=".ExampleActivity"/>
...
</application>
...
</manifest>
并通过在manifest文件中设置默认启动activity,则会在app启动时地一个进入该活动。
<activity android:name=".ExampleActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
activity 生命周期
activity的生命周期通过七个回调函数体现
- onCreate():activity第一次创建时调用。完成活动初始化操作,例如:加载布局、绑定事件等。
- onStart():activity由不可见变成可见。
- onResume():activity准备好与用户进行交互,此时活动位于任务栈栈顶,且该任务栈位于前台,该activity处于运行状态。
- onPause():activity失去运行状态,变成部分可见,在启动或恢复其他activity时调用,会销毁一些cpu中的资源,保存关键数据。暂停状态。
- onStop():activity由部分可见变成完全不可见。停止状态。
- onDestroy):活动被销毁时调用,例如:用户点击返回键。销毁状态。
- onRestart():停止状态到运行状态的中间调用调用。
activity 生命周期情景介绍
- app刚启动时,假设activity A作为第一个启动的activity,activity A占有整个屏幕,此时activity A经历:onCreate() -> onStart() -> onResume()
- 点击Activity A中某个按键,跳转到Activity B,Activity B占有整个屏幕,完全覆盖掉Activity A,则经历:
Activity A:onPause()
Activity B:onCreate() -> onStart() -> onResume()
Activity A:onStop() - 此时若有弹窗弹出,Activity B被部分覆盖,则:
Activity B:onPause() - 弹窗被叉掉:
Activity B:onResume() - 按下返回键:
Activity B:onPause()
Activity A:onRestart() -> onStart() -> onResume()
Activity B:onStop() -> onDestroy()
如果有不同的想法,欢迎评论留言讨论,共同进步。