Activity介绍(一)

Activity是什么

Activity 类是 Android 应用的关键组件,而 activity 的启动和组合方式是平台应用模型的基本组成部分。与使用 main() 方法启动应用的编程范式不同,Android 系统会通过调用与其生命周期特定阶段对应的特定回调方法,在 Activity 实例中启动代码。

Activity生命周期

当用户浏览、退出和返回到我们的应用时,我们应用中的 Activity 实例会在其生命周期的不同状态间转换。Activity 类提供了许多回调,这些回调会让 activity 知道状态何时发生变化,或者系统正在创建、停止、恢复 activity 或销毁 activity 所在的进程。

在生命周期回调方法中,我们可以声明用户离开和再次进入 Activity 时 Activity 的行为方式。例如,如果我们构建的是流式视频播放器,当用户切换到其他应用时,我们可以暂停视频并终止网络连接。当用户返回时,我们可以重新连接到网络,让用户从同一位置继续播放视频。

每个回调都允许我们执行适合给定状态更改的特定工作。在合适的时间执行正确的作业,并妥善处理转换,这将提升应用的稳健性和性能。例如,良好的生命周期回调实现有助于我们的应用避免以下行为:

  • 当用户在使用应用时接听来电,或切换至另一应用时崩溃。
  • 当用户未主动使用它时,消耗宝贵的系统资源。
  • 当用户离开应用并在稍后返回时,丢失用户的进度。
  • 当屏幕在横向和纵向之间旋转时,崩溃或丢失用户的进度。

为了在 activity 生命周期的各个阶段之间导航过渡,Activity 类提供了六个核心回调:onCreate()、onStart()、onResume()、onPause()、onStop() 和 onDestroy()。当 activity 进入新状态时,系统会调用其中每个回调。

下图是对此范例的直观展示。
在这里插入图片描述

onCreate()

我们必须实现此回调,它会在系统创建我们的 activity 时触发。我们的实现应初始化 activity 的基本组件:例如,我们的应用应在此处创建视图并将数据绑定到列表。最重要的是,我们必须在此方法内调用 setContentView(),以定义 activity 界面的布局。

onStart()

当 onCreate() 退出时,activity 会进入“已开始”状态,并且对用户可见。此回调包含 activity 进入前台并进入可交互状态所需的最后准备工作。

onResume()

系统会在 activity 开始与用户互动之前调用此回调。此时,activity 位于 activity 堆栈的顶部,并捕获所有用户输入。应用的大部分核心功能都是在 onResume() 方法中实现的。

onPause() 回调始终在 onResume() 之后调用。

onPause()

当 activity 失去焦点并进入“已暂停”状态时,系统会调用 onPause()。例如,当用户点按“返回”或“最近”按钮时,就会出现此状态。当系统为activity 调用 onPause() 时,从技术上来讲,这意味着activity 仍然部分可见,但大多数情况下,这表明用户正在离开该 activity,并且该 activity 很快就会进入“已停止”或“已恢复”状态。

如果用户希望界面更新,则处于“已暂停”状态的 activity 可以继续更新界面。此类 activity 的示例包括显示导航地图屏幕或播放媒体播放器的 activity。即使此类 activity 失去焦点,用户也会希望其界面继续更新。

不应使用 onPause() 保存应用或用户数据、进行网络调用或执行数据库事务。

onPause() 执行完毕后,下一个回调为 onStop() 或 onResume(),具体取决于 activity 进入“已暂停”状态后发生的情况。

onStop()

当 activity 对用户不再可见时,系统会调用 onStop()。这可能是因为 activity 正在被销毁、新的 activity 正在启动,或者现有 activity 正在进入“已恢复”状态并覆盖了已停止的 activity。 在所有这些情况下,已停止的 activity 将完全不再可见。

系统调用的下一个回调是 onRestart()(如果 activity 重新与用户互动),或 onDestroy()(如果此 activity 完全终止)。

onRestart()

当处于“已停止”状态的 activity 即将重启时,系统会调用此回调。onRestart() 会从 activity 停止时恢复其状态。

此回调后跟 onStart()。

onDestroy()

系统会在销毁 activity 之前调用此回调。

此回调是 activity 接收的最后一个回调。 通常,实现 onDestroy() 可确保在 activity 或包含该 activity 的进程被销毁时释放 activity 的所有资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值