Как получить экземпляр класса приложения? - PullRequest
0 голосов
/ 20 января 2020

Я использую класс, который extends Application класс. У меня есть метод внутри этого класса. Мне нужно вызвать этот метод с помощью экземпляра. всякий раз, когда я вызываю этот метод с использованием экземпляра, он выдает NullPointerException, потому что экземпляр всегда равен нулю. Я использую шаблон синглтона для получения экземпляра.

AppSetting. 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...
    }
}

Activity

Я использую этот код для вызова метода AppSetting.getInstance().somemethod()

Я всегда получаю, что Экземпляр нулевой. Как правильно получить экземпляр? Я делаю что-то не так в создании экземпляра?

1 Ответ

3 голосов
/ 20 января 2020

Вместо new AppSetting() используйте this для создания экземпляра AppSetting

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

    instance = this;
}

public static AppSetting getInstance() {
    return instance;
}

Также не забудьте добавить класс AppSetting в тег * AndroidManifest.xml * application как показано ниже:

<application
    android:name=".AppSetting"
    <!-- Others code -->
>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...