Android 生命周期 - 我的想法正确吗?

Posted

技术标签:

【中文标题】Android 生命周期 - 我的想法正确吗?【英文标题】:Android lifecycle - are my ideas correct? 【发布时间】:2014-03-23 15:35:32 【问题描述】:

我在几本书和官方文档中阅读了有关 android 生命周期的内容,但仍然无法将我的想法集中在一个地方并完全理解它。我正在开发简单的应用程序,我在其中使用片段,所以这使得它变得更加困难,因为片段具有与应用程序分开的生命周期。所以我想问你几个问题:

我的应用程序是一个简单的各种数据记录器,所以基本上用户只需要输入数据并查看它。据我了解,像 onPause、onResume、onStop 这样的循环我不应该担心吗?我想我真正的问题是哪些 android 生命周期方法对于每个应用程序都是必不可少的?

如果您(片段虎钳)调用所有方法并管理 onCreateView 中的所有视图,这是否被认为是一种非常糟糕的做法?

你知道任何简单但很好的指南可以帮助我理解如何正确管理 android 生命周期吗?

【问题讨论】:

【参考方案1】:

OnResume 和 onPause 是生命周期中非常重要的部分,您应该担心它。每当用户从您的应用程序更改为另一个应用程序时,o 会转到通知或其他任何内容,当它转到另一个应用程序时总是会调用 onPause(),当它回来时会调用 onResume()。你必须明白你的Activity可能会被杀死,(如果系统没有足够的资源),在这种情况下会首先调用onCreate,但如果没有,则会跳转到onCreate并转到onResume()。 onStop 几乎没有必要,因为您应该在 onPause() 中释放所有资源,因为在 onPause 调用之后,您不知道您的活动是否会被系统杀死。

Fragments 包含相同的 Activity 生命周期回调以及它们自己的回调。

【讨论】:

【参考方案2】:

请注意:

将视图附加到 Fragment 中的字段可能会导致内存泄漏

Fragment 可以与 Activity 分离 - 将活动存储为变量会导致内存泄漏

http://developer.android.com/guide/components/fragments.html

【讨论】:

好的,我还有一个问题:如果可能的话,你应该避免使用碎片吗?因为对于我的应用来说,Activity 就足够了,我只是在练习并尝试使用 Fragment 进行编码,因为现在每个人都在使用它们。 这取决于你的目的是什么——你的目标是平板电脑吗?你想有两个横向窗格吗?如果是这样 - 使用片段。

以上是关于Android 生命周期 - 我的想法正确吗?的主要内容,如果未能解决你的问题,请参考以下文章

跳过 Android 生命周期方法

android:碎片的生命周期

临时人员的 C++ 生命周期 - 这安全吗?

四大组件之Service生命周期

androidx.lifecycle 生命周期感知型组件实现原理

全面解析Activity的生命周期