gpt4 book ai didi

android - 将 Activity 上下文传递到静态方法中,内存泄漏的可能性?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:58:00 25 4
gpt4 key购买 nike

我已经看到了这种用于启动 Activity 的特殊技术,在我看来这是一个坏主意,因为静态上下文,但我希望有人可能对这种方法有合理的理由。

您要启动的 Activity 实现静态启动(Context context)方法,该方法设置 Intent 、标志等并最终启动 Activity。

public static void launch(Context context){
Intent i = new Intent(context, SomeOtherActivity.class);
// flag stuff
context.startActivity(i);
}

然后一个 DifferentActivity 可以用一行来启动 SomeOtherActivity。

SomeOtherActivity.launch(DifferentActivity.this);

我喜欢它允许您在远离启动它的 DifferentActivity 的 Activity 中设置标志的方式,但这似乎不是合理化将该 Activity 的上下文传递到静态方法的充分理由。

这不会导致 DifferentActivity 不被垃圾回收,因为现在静态方法引用了它吗?这对我来说似乎是内存泄漏,可能不是一个好主意,只是为了能够保留正在创建的 Activity 中包含的标志。

我是否遗漏了什么让这是一个很好的做法?

最佳答案

将某些东西传递给静态函数并不是潜在的内存泄漏。将变量存储在静态变量中是。这种技术是绝对安全的。我什至会推荐它,因为您可以将变量传递给函数并将它们存储在将要使用这些附加功能的类中的附加功能中,从而减少需要知道它们的存在以及它们如何存在的地方的数量布置好

关于android - 将 Activity 上下文传递到静态方法中,内存泄漏的可能性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43480343/

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