0

在我的Application子类中,我保存了对 的静态引用Context,这样我就不必在其余代码中传递上下文。我只是MyApplication.getAppContext()在需要应用程序时使用Context

public class MyApplication extends Application {
    private static Context context;

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

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

这安全吗?MyApplication.getAppContext()是否存在退货的可能情况null

4

2 回答 2

2

静态初始化程序可以在创建任何对象实例之前在类加载时调用该方法。此外,类构造函数可能会在调用 onCreate 方法之前调用该方法,所以是的,该方法可能返回 null。

于 2013-08-11T11:22:27.057 回答
2

请牢记以下声明使用它,您可以放心使用!

onCreate() 在应用程序启动时调用,在创建任何活动、服务或接收器对象(不包括内容提供者)之前。

http://developer.android.com/reference/android/app/Application.html

并检查以下帖子。

到处使用应用程序上下文?

于 2013-08-11T12:01:17.680 回答