gpt4 book ai didi

android - 带有 UI Android 的 setRetainInstance fragment

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:13:16 24 4
gpt4 key购买 nike

好的,我创建了一个带有一些 UI(几个文本框和其他东西)的 Fragment 并且我使用了 setRetainInstance 因为我正在运行一个 AsyncTask 来查询服务器(请求只能发送一次),我需要 AsyncTask 的结果。所以我的问题是:用UI保留整个fragment是不是错了?我看到几个例子,人们使用额外的 Fragment 来使用 setRetainInstance 但是..不使用那个额外的有什么问题吗?如果使用 setRetainInstance 有问题,那是为什么?在文档中找不到与此相关的任何信息。

最佳答案

即使您使用 setRetainInstance(true),您的 Fragment 仍会在您旋转时重新创建其 View (您将调用 onDestroyView,然后调用 onCreateView )。只要您不保留对 onDestroyView 之后的 View 的引用,就不会存在旧 Activity 的任何泄漏。最好的方法是显式地将 onDestroyView 中的引用设为 null,但您在 onCreateView 中的代码通常无论如何都会覆盖这些引用。

网上有很多例子(包括一些官方的)人们使用单独的 fragment (没有 View )来保留数据。假设我上面说的是正确的,那么这是不必要的(为了防止泄漏)。在许多情况下,如果您使用一个单独的 fragment ,其职责只是处理数据而不用担心 UI,您最终可能会得到更清晰的代码/架构。

您可以检查在按 using Eclipse MAT 旋转后是否泄漏 Activity 上下文.

关于android - 带有 UI Android 的 setRetainInstance fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10627610/

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