大佬教程收集整理的这篇文章主要介绍了Android 生命周期,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
(抱歉我的介绍太啰嗦。)
我的程序中有一个“错误”,它在不应该进行的活动中随机进入。例如,假设我有活动 A(@H_699_7@mainActivity)、B 和 C。我从A 到B,然后B 到C。然而,当从 B 移动到 C 时,我注意到它从 B 到 A 然后 A 到C(这对我来说毫无意义;为什么它甚至不“回到”B?)。我无法找出原因,因为我没有任何从 B 转到 A 的代码。
这是日志:
A onCreate (from: NonE) // 刚开始程序
一个 onStart
一份简历
点击活动 A 中的按钮移动到活动 B
暂停
B onCreate(来自:A)
B onStart
B onResume
停顿
A onDestroy
点击活动 B 中的按钮移动到活动 C
B onPause
A onCreate (from: B) // 为什么?
C onCreate(来自:B)
一个 onStart
C onStart
一份简历
C onResume
B onStop
B onDestroy
尽管我相信我不会“同时”进行两项活动,但我认为自从 A 被调用以来我认为我是。为了验证这一点并看看如果我“同时”移动到两个不同的活动会发生什么,我制作了一个简单的程序,从 B 和 C strong>A 像这样:
startActivity(new Intent(this,B.class));
startActivity(new Intent(this,C.class));
一旦我在 A 中按下一个按钮,这两个按钮就会被调用。我已经为每个要放置的活动覆盖了 onCreate()
、onStart()
、onResume()
、onPause()
、onStop()
、onRestart()
和 onDestroy()
print
语句以查看每个语句何时被调用。这是我按下 Activity B 中的按钮后的结果(移动到 Acitivity C)。
一个 onCreate
一个 onStart
一份简历
暂停
C onCreate
C onStart
C onResume
停顿
我不明白的是为什么没有调用 B(甚至没有调用 onCreate()
)。是否因为它在执行以下命令之后没有“足够的时间”甚至为 B 调用 onCreate()
?我一直在关注 this 和 this(以及 SO 网站)一段时间,但我认为我不理解这种行为。
B 没有被调用的原因是什么?此外,它从 B 转移到活动 A 然后从 B 转移到 C 的原因可能是什么(提到在“介绍”中)?
编辑:更清楚地说,我不想同时运行两个活动。事实上,当我尝试移动到活动 C 时,(从“介绍”中)活动 A 被无缘无故地调用了。我认为这可能是因为 Activity A 没有被销毁(仍在堆栈中),尽管我不确定问题是什么。
EDIT 2:我试图通过创建一个新程序来提出一个最小的可重复示例,但似乎我没有遇到这种行为,可能是因为我删除了从 DB 中获取数据(也许是是因为这个吗?)。我在下面的评论中简要说明了我在做什么。
以上是大佬教程为你收集整理的Android 生命周期全部内容,希望文章能够帮你解决Android 生命周期所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。