首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Android中获取“上下文”的静态方式?

在Android中获取“上下文”的静态方式?
EN

Stack Overflow用户
提问于 2010-01-05 05:15:01
回答 13查看 767.3K关注 0票数 1.1K

有没有办法在静态方法中获取当前的Context实例?

我之所以寻找这种方式,是因为我讨厌每次“Context”实例发生变化时都保存它。

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2011-02-25 14:37:01

执行以下操作:

在Android Manifest文件中,声明以下内容。

代码语言:javascript
复制
<application android:name="com.xyz.MyApplication">

</application>

然后编写类:

代码语言:javascript
复制
public class MyApplication extends Application {

    private static Context context;

    public void onCreate() {
        super.onCreate();
        MyApplication.context = getApplicationContext();
    }

    public static Context getAppContext() {
        return MyApplication.context;
    }
}

现在,无论在哪里,都可以静态地调用MyApplication.getAppContext()来获取应用程序上下文。

票数 1.4K
EN

Stack Overflow用户

发布于 2010-01-05 08:46:01

不,我不认为有。不幸的是,您不得不从ActivityContext的其他子类中调用getApplicationContext()。此外,this问题也有一定的关联性。

票数 51
EN

Stack Overflow用户

发布于 2011-08-12 09:07:38

这取决于您使用上下文的目的。我能想到这种方法至少有一个缺点:

如果您尝试使用AlertDialog.Builder创建AlertDialog,则Application上下文将无法工作。我相信您需要当前Activity的上下文...

票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2002288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档