gpt4 book ai didi

android - 使用对当前未显示的 Activity 的引用来启动另一个 Activity

转载 作者:搜寻专家 更新时间:2023-11-01 09:32:30 26 4
gpt4 key购买 nike

如果我有一个对当前未显示的 Activity 的引用(在非 Activity 类中),我是否有任何理由不应该使用它来启动另一个 Activity ?

例子:

Activity A:

Intent anIntent = new Intent(this, ActivityB)
startActivity(anIntent) // happens first

其他一些非 Activity 类:

Intent anIntent = new Intent(refToActivityA, ActivityC)
startActivity(anIntent) // happens second

最佳答案

除非有充分的理由,否则通常不应持有对 Activity 或其他上下文的引用。

1) 如果您的第一个 Activity 不再显示,它可能会被系统杀死并被垃圾收集。但是,如果您持有该引用,则无法对其进行垃圾回收,从而导致(潜在的)内存泄漏。

2) 保存对 Activity 的引用意味着您将该类耦合到该 Activity,这通常是不好的做法。

3) 启动 Activity 是一个 Android 概念,通常应由其他 Android 组件控制。除非你的类是一些导航抽象,否则它可能不应该开始 Activity 。

没有更多信息,很难说在您的特定情况下您应该做什么,但通常您应该使用最本地的 Context 来启动 Activity (可以是服务、ContentProvider、 BroadcastReceiver 等)并且保留上下文。

希望对您有所帮助。

关于android - 使用对当前未显示的 Activity 的引用来启动另一个 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45928500/

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