猿问

在任何地方使用应用程序上下文?

在任何地方使用应用程序上下文?

在Android应用程序中,下面的方法有什么问题吗?

public class MyApp extends android.app.Application {

    private static MyApp instance;

    public MyApp() {
        instance = this;
    }

    public static Context getContext() {
        return instance;
    }}

并将它传递到任何需要上下文的地方(例如SQLiteOpenHelper)(当然不是泄漏)?


繁花如伊
浏览 310回答 3
3回答

当年话下

这种方法存在一些潜在的问题,尽管在很多情况下(比如您的例子),它会很好地工作。尤其是,在处理任何处理GUI这需要一个Context..例如,如果将应用程序上下文传递给LayoutInflater你会得到一个例外。一般来说,您的方法很好:使用Activity's Context在这个范围内Activity,以及Application Context当将上下文传递到Activity到避免内存泄漏.同时,作为一个替代对于您的模式,可以使用调用的快捷方式。getApplicationContext()在.上Context对象(例如活动)获取应用程序上下文。
随时随地看视频慕课网APP

相关分类

Android
我要回答