Xamarin.Android Activity 生命周期17 Mar 2025 | 6 分钟阅读 Activity 是 Android 应用程序的构建块,它们可以存在于不同的状态。 Activity 生命周期从初始化开始,到终止结束。 Activity 生命周期包括应用程序初始化和终止之间的许多状态。 Activity 是 Android 应用程序中的单个页面,用户可以在其中执行交互。 Activity 状态AndroidOS Activity 基于其状态。 Android 状态帮助 Android 识别不再使用的 activity。 Android 状态允许 操作系统 重新声明内存和资源。 该图显示了 activity 在其生命周期中可能经历的状态。 ![]() 状态分为四组
Activity 生命周期方法当用户浏览 Android 应用程序时,会发生一系列事件。 例如,当我们启动一个应用程序,例如 Facebook 应用程序,它会启动并显示在用户的前台,onCreate () → onStart () → onResume ()。 如果任何其他 Activity 启动,例如:当有电话呼叫时,Facebook 应用程序将转到后台,并且呼叫到达前台。 现在我们有两个正在进行的过程。 当电话呼叫结束时,Facebook 应用程序返回到前台。 调用了三种方法。 Xamarin.Android 框架提供了一个强大的模型来管理应用程序中的 Activity 状态。 当 Activity 的状态发生变化时,Activity 会收到操作系统的通知,操作系统会调用该 Activity 上的特定方法。 以下是一些指定与 Activity 生命周期 关系的几种方法 作为开发人员,我们可以通过覆盖 Activity 内的方法来处理状态的变化。 在这里,我们必须注意到,所有生命周期方法都在 UI 线程上调用,并阻止操作系统执行下一个 UI 工作。 它将隐藏当前 Activity 并显示新的 Activity。 任何长时间运行的任务都应在后台线程上执行。 以下是生命周期方法及其用途 ![]() OnCreate: OnCreate 是创建任何 Activity 时调用的第一个方法。 OnCreate 始终被覆盖,以执行任何 Activity 所需的任何初始化,例如
OnCreate 接受 Bundle 参数,这是一个用于在 Activity 之间存储和传递状态和对象信息的字典。 如果包不为空,则表示 Activity 正在重新启动,它应该从上一个状态恢复其状态。 OnCreate 完成后,Android 将启动 OnStart。 OnStart: OnCreate 完成后,系统将调用 OnStart。 如果需要在任何 Activity 可见之前执行任何任务,则 Activity 可能会覆盖此方法。 OnStart 包括例如,刷新 Activity 内视图的当前值。 Android 将在 OnStart 之后调用 OnResume 方法。 OnResume: 当任何 Activity 准备好开始与用户交互时,系统将调用 OnResume。 Activity 应该覆盖此方法以执行任务。 这些任务是
在这里,我们将编写代码来展示如何初始化相机。 OnResume 很重要,因为在 OnPause 中完成的任何操作都应在 OnResume 中撤消。 它是我们在启动任何 Activity 之后执行的唯一方法。 OnPause: 当系统要将 Activity 放入后台或 Activity 不可见时,将调用 OnPause。 如果需要,Activity 应该覆盖 OnPause 方法
示例:在此示例中,我们释放相机。 在暂停期间,Activity 无法使用它。 以下是在 OnPause 之后调用的两个生命周期方法。
OnStop: 当 Activity 不可见时,在这种情况下,我们将使用 OnStop。 此 Activity 发生在以下情况下
当 Android 需要内存资源且无法在后台执行 Activity 时,在低内存的情况下,OnStop 无法被调用。 这就是我们无法依赖 OnStop 的原因,因为我们计划终止任何 Activity。 在此之后可以调用的下一个生命周期方法将是 OnDestroy,如果 Activity 正在运行,而 OnRestart 将用于 Activity 正在返回进行交互。 OnDestroy: OnDestroy 是在 Activity 实例被销毁并从内存中完全删除之前在 Activity 实例上调用的最终方法。 在极端情况下,Android 可能会杀死 Activity 的托管进程,导致 OnDestroy 未实现。 大多数情况下,Activity 不会执行此方法,因为主要清理和关闭已在 OnPause 或 OnStop 方法中完成。 通常会覆盖 OnDestroy 方法以清理可能泄漏资源的长时间运行的资源。 例如,这是在 OnCreate 中启动的后台线程。 在 Activity 被销毁之后,将没有生命周期方法。 OnRestart: OnRestart 在停止 Activity 后但在恢复它之前被调用。 示例,当用户在应用程序中的 Activity 上按下主页按钮时。 发生这种情况时,将调用 OnPause,然后调用 OnStop,并且 Activity 移至后台,但未被销毁。 如果我们要重新安装应用程序,则使用任务管理器或类似的应用程序,Android 将调用 Activity 的 OnRestart 方法。 OnStart 将是在 OnRestart 之后调用的下一个生命周期方法。 总结Android Activity 生命周期为应用程序内的状态管理活动提供了一个强大的框架,但是理解和实现它可能很困难。 |
我们请求您订阅我们的新闻通讯以获取最新更新。