gpt4 book ai didi

android - 如何在我自己的实用程序类中提供上下文来调用必要的函数

转载 作者:太空狗 更新时间:2023-10-29 15:39:53 25 4
gpt4 key购买 nike

有时候我需要提供一个Context对象来调用特定的函数,比如

Intent intent = new Intent(context, MyClass.class);

为了启动服务

context.startService(intent);

或者,提供一个 Context 对象来进行查询

Cursor cursor = context.managedQuery(uri, projection, null, null, null);

如果这是在扩展 Activity 的 UI 类中完成的,那很好。但是,如果我想创建自己的不扩展任何内容并调用这些函数的实用程序类(单例),我就没有必要的 Context 对象。现在我的解决方法是在初始化实用程序类时传递一个 Activity 引用,并使用该引用来调用这些函数。我想知道这样做的正确方法是什么。让每个类都扩展 Context 以便它可以调用这些函数是不合理的。

最佳答案

Now my workaround is to pass an activity reference while initializing the utility class and have that reference to call those functions. I'm wondering what's the correct way to do that.

绝对不是。您正在通过持有对该 Activity 的静态引用来泄漏该 Activity 的内存。

让实用程序类中的方法将 Context 作为参数。或者,使用 getApplicationContext() 获取单例应用程序上下文并将其提供给您的实用程序类构造函数。只要进程存在,应用程序上下文对象就会存在。

关于android - 如何在我自己的实用程序类中提供上下文来调用必要的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4158785/

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