有人可以确认以下有关 android 应用程序生命周期的信息吗?
1) 当应用程序在前台时,内存将包含应用程序对象的实例、所有 Activity 的实例(未终止)以及从根(尚未被垃圾收集)之一引用的所有对象引用
2) 当应用程序进入后台时,Android Framework 在某个时候可以: a)终止应用程序目的的整个过程,这将基本上从内存中删除所有对象 b) 仅杀死(因此基本上不会删除其他对象引用) Activity (通过完成它们以及本质上任何 fragment )保存它们的状态并创建 Activity 堆栈并留下任何其他东西(应用程序对象,任何其他静态对象,可从任何根访问的引用)。
我最感兴趣的是 2b,但我会感谢所有这些要点的确认,因为我正试图从头到尾在心理上掌握整个概念。
最佳答案
如果您正在寻找官方确认,那么最好只询问 Google :)。
但我觉得读完这篇文章你会对这些概念有更好的理解。
第一个问题的答案: 是的,确认使用 DDMS。
回答 2a 个问题:是的,当其他进程需要内存时,操作系统可以随时终止进程,这将导致终止与进程相关的所有对象。
2b 问题的答案:
来自官方文档
进程生命周期 3. 后台 Activity (用户不可见且已暂停的 Activity )不再关键,因此系统可以安全地终止其进程以为其他前台或可见进程回收内存。如果它的进程需要被杀死,当用户导航回到 Activity (使其再次在屏幕上可见)时,它的 onCreate(Bundle) 方法将被调用,并使用它之前在 onSaveInstanceState(Bundle) 中提供的 savedInstanceState ,以便它可以以与用户上次离开时相同的状态重新启动。
关于Android 应用程序生命周期说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33751531/