如何获取应用程序类的实例?

del*_*xan 1 singleton android

我正在使用一个类哪个extends Application类。我在这个类中有一个方法。我需要在实例的帮助下调用这个方法。每当我使用实例调用此方法时,它都会抛出异常NullPointerException,因为实例始终为空。我正在使用单例模式来获取实例。

应用程序设置.java

public class AppSetting extends Application {
    private static AppSetting instance;

    @Override
    public void onCreate() {
        super.onCreate();

        instance = new AppSetting();
        ....
    }

    public static synchronized AppSetting getInstance() {
        if (instance == null) {
            instance = new AppSetting();
            return instance;
        }
        return instance;
    }

    public somemethod() {
        return...
    }
}
Run Code Online (Sandbox Code Playgroud)

活动

我正在使用这段代码来调用该方法AppSetting.getInstance().somemethod()

我总是发现该实例为空。如何正确获取实例?我在创建实例时做错了什么吗?

Md.*_*man 6

而不是用来new AppSetting()创建this实例AppSetting

@Override
public void onCreate() {
    super.onCreate();

    instance = this;
}

public static AppSetting getInstance() {
    return instance;
}
Run Code Online (Sandbox Code Playgroud)

AppSetting另外不要忘记在AndroidManifest.xml's标签中添加类application,如下所示:

<application
    android:name=".AppSetting"
    <!-- Others code -->
>
Run Code Online (Sandbox Code Playgroud)