gpt4 book ai didi

android - 关于android组件的生命周期

转载 作者:行者123 更新时间:2023-11-29 18:05:53 25 4
gpt4 key购买 nike

首先,我是 android 开发的新手......我读过 android API 指南中的一些文章,对组件生命周期与托管过程感到困惑。

这是我的理解:

  1. Android 系统可能会在内存不足的情况下杀死一个进程整个进程中的某些 Activity,这意味着有可能启动的 Activity 可能会死亡,但进程仍然存在。

  2. 如果启动服务但未调用任何停止方法,当内存极低时,该服务将被系统及其托管进程终止,而不仅仅是服务本身,这意味着不应发生的情况:服务被系统杀死,但托管进程仍然存在。

  3. 当一个应用程序启动时,用户浏览 activity1 -> activity2 -> activity3 并且它们都没有调用 finish()。接下来,用户导航到另一个应用程序的 Activity 并长时间使用它,以至于前一个应用程序进程被系统终止。现在用户导航回回溯堆栈中的 activity3,会发生什么?以前的应用程序进程以 activity3 recreate 重新启动?

有什么问题吗?

最佳答案

无需切换到另一个应用程序的 Activity :从您离开第一个 Activity 转到第二个 Activity 的那一刻起;很明显,当您从第二个 Activity (回溯)返回第一个 Activity 时,第一个 Activity 可能已被破坏,而当您转到第三个 Activity 时,第一个 Activity 、第二个 Activity 或两者都可能被破坏同时销毁。事实上,您甚至不会离开 Activity 就看到它被销毁;因为如果您通过旋转设备从纵向模式切换到横向模式,反之亦然,这将自动发生。

当您返回到一个 Activity 时,如果该 Activity 同时没有被销毁,将调用 onRestart() 函数。如果有,“onCreate(Bundle savedInstanceState)”将被调用,但参数“savedInstanceState”设置为非空值(即,它将指向一个有效的 Bundle 对象)如果你已经采取了保存的预防措施onSaveInstanteState(Bundle outState)函数中activity进入被系统销毁过程中的当前状态。当此 Activity 需要稍后恢复以进行回溯时,系统将始终在销毁 Activity 之前调用此函数。当然,它不会在调用 finish() 之后调用,因为这也会从回溯堆栈中删除 Activity 。

最后,在Android中,同一个应用中的activity之间的耦合是非常松散的。谈到资源的使用,从同一个应用程序或另一个应用程序切换到 Activity 之间没有太大区别。在许多方面, Activity 在运行时表现得就像所有完全独立的应用程序一样。这就是为什么您总是需要使用 Intent 来启动 Activity 的原因;即使它来自同一个应用程序。

关于android - 关于android组件的生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13391052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com