gpt4 book ai didi

Android 应用程序与。过程

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:31:14 25 4
gpt4 key购买 nike

我创建了一个包含一个 Activity 和包名称 "com.explore" 的 Android 应用程序

            <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

我运行 ps 命令。

USER     PID   PPID  VSIZE  RSS     WCHAN    PC         NAME
app_137 2974 91 478604 48524 ffffffff 00000000 S com.explore

我按下后退按钮。我退出应用程序并来到主屏幕现在再次运行 ps 命令。

USER     PID   PPID  VSIZE  RSS     WCHAN    PC         NAME
app_137 2974 91 472428 42572 ffffffff 00000000 S com.explore

进程 2974 仍在运行。有人可以向我解释这种行为吗?那是内存使用情况、状态或进程将持续多长时间?按下后我应该从我的代码中终止进程吗?如何优雅地终止进程?

最佳答案

当您运行一个应用程序时,如果它尚未运行,它会获得一个新的进程 ID。这个 ID 会一直保留到它完全不在内存中为止。 (这可以通过使用应用程序设置中的“强制停止”选项来实现和测试。)

但是,当用户点击后退或主页按钮时,应用程序不会退出,在大多数情况下,只会暂停或停止。

您可以阅读 this documentation ,其中详细介绍了流程生命周期。第 1 点和第 2 点基本上是说,除非绝对必要(强制关闭或无内存),否则不会终止前台进程(或在表面上的进程,例如对话)。第3点很重要;它说任何不再需要的过程——即用户已经“关闭”它——可能会也可能不会被杀死,这取决于设备的内存。最后,第 4 点,任何没有做任何事情,但只是.. 存在的.. 将被尽快杀死。

您可能还想查看 Activity lifecycle .这将准确地向您显示应用程序的每个步骤何时发生(即何时暂停、何时停止以及何时销毁)。它唯一没有真正涵盖的是内存的过度分配(或方向改变,这会重新触发整个生命周期)。

总而言之,请记住 Android 非常智能。它比大多数开发人员更好地管理其流程,并且确实尝试保留尽可能多的流程以便于重用。除非您绝对确定您希望您的进程内存不足,否则您永远不应该杀死它。和 the way we have to kill and manage processes is never pretty .

关于Android 应用程序与。过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12345547/

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