三、Android入门学习——四大组件入门:Activity

发布于 2023-10-08  727 次阅读


Activity组件是四大组件之一,作为一个最重要的组件,中文意思是“活动”,简单使用下,也可以理解为“界面”
应用程序的每一个界面都是一个Activity,所以也可以称为视图界面,简单点理解,类似于vue前端的js部分

项目创建后,默认就会有一个MainActivity的界面,对应着视图界面activity_main

file

生命周期

file

每一个页面,都对应一个独立的Activity,不做特殊处理,每个页面的Activity都是独立的,也就是说每个页面都有一个完整的生命周期。

onCreate()

Activity正在被创建。
Activity状态:不可见。
第一次创建的时候调用,用于设置布局(setContentView)、初始化组件、注册广播和数据绑定等。

onStart()

Activity正在被启动,即将开始。
Activity状态:可见,但是还没有前台,但是无法交互。
某些资源重新加载,如返回局部重新刷新数据等。

onResume()

Activity开始活动。
Activity状态:可见,可以交互,运行状态的栈顶。
在这里面可以实现大部分方法,如开启相机,麦克风等。

onPause()

Activity由前台转到后台,这时前台可见,此操作执行的很快,在这一步执行完后,新Activity的onCreate才会执行。
Activity状态:可见,正在停止。
可以进行动画停止、资源回收等操作。

onStop()

此时Activity即将停止。
Activity状态:不可见。
这里可进行大量资源回收的操作。

onDestory()

生命周期的最后一个回调,表示Activity销毁。
Activity状态:不可见。

onRestart()

Activity正在重新启动,由不可见状态变为可见状态
Activity状态:可见

常见的回调流程

  • 正常启动:onCreate -> onStart -> onResume
  • 正常退出:onPause -> onStop -> onDestroy
  • 横竖屏切换:正常退出 -> 正常启动
  • A页面跳转B页面:[A]onPause -> [B]onCreate -> [B]onStart -> [B]onResume -> [A]onStop
  • B页面返回A页面:[B]onPause -> [A]onRestart -> [A]onStart -> [A]onResume -> [B]onStop -> [B]onDestory
  • 切后台:onPause -> onStop
  • 从后台切回:onRestart -> onStart -> onResume

启动模式

Activity有四种启动模式:standard、singleTop、singleTask、singleInstance。可以在AndroidManifest.xml里的activity标签设置

file

standard

系统默认模式,每次启动一个Activity都会创建一个新的实例,无论是否已经创建过。

singleTop

栈顶服用模式,类似于standard,系统启动时,系统会启动当前栈顶Activity是不是要启动的Activity,如果是则不需要创建新的Activity而直接引用这个Activity,如果不是那么创建新的Activity。系统会回调Activity的onNewIntent()的方法。如可以用于通知栏,推送消息页面,当有消息来的时候,点击发现是同一个页面,就不会重新跳转。

singleTask

栈内复用模式,如果栈内已经存在了Activity,则不会重新被创建,同时onNewIntent()会被回调,并且将该Activity实例置于栈顶,原先的Activity则会被销毁出栈。首页可以设置为该模式,因为首页一般只存在一个。

singleInstance

单一实例模式,类似于singleTask,这种模式下,Activity只会存在一个单独的任务栈中,启动与程序分离情况,闹钟的提醒、打开其他应用。

以上就是对Activity的简单理解

啊~~~~~~~~~
最后更新于 2023-10-10