程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android 生命周期大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Android 生命周期?

开发过程中遇到Android 生命周期的问题如何解决?下面主要结合日常开发的经验,给出你关于Android 生命周期的解决方法建议,希望对你解决Android 生命周期有所启发或帮助;

(抱歉我的介绍太啰嗦。)

我的程序中有一个“错误”,它在不应该进行的活动中随机进入。例如,假设我有活动 A(@H_699_7@mainActivity)、BC。我从AB,然后BC。然而,当从 B 移动到 C 时,我注意到它从 BA 然后 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 被调用以来我认为我是。为了验证这一点并看看如果我“同时”移动到两个不同的活动会发生什么,我制作了一个简单的程序,从 BC 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 中获取数据(也许是是因为这个吗?)。我在下面的评论中简要说明了我在做什么。

解决方法

在检查每一行代码三次后,我发现问题是因为我在 Activity C 中扩展了 Activity A。我对此没有非常明确的解释,但我假设扩展活动“创建”一个“实例”。

大佬总结

以上是大佬教程为你收集整理的Android 生命周期全部内容,希望文章能够帮你解决Android 生命周期所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:生命周期