Безопасно ли сохранять контекст приложения в статическую переменную в Android?

Я знаю, что использование статических переменных в Android довольно рискованно, особенно если вы ссылаетесь на них в виды деятельности. Однако, если у меня есть класс, который расширяет Application (, давайте назовем этот класс «App» ), безопасно ли ссылаться на экземпляр этого класса?

Если да, то безопасно ли для любого другого класса иметь какие-либо ссылки на контекст приложения? Я имею в виду, может ли быть утечка памяти, если у меня есть ссылка на контекст приложения в любом классе?

Цель состоит в том, что независимо от того, в какой области я нахожусь, я всегда могу получить ссылку на контекст приложения. Я думаю, что это безопасно, поскольку, если система закрывает приложение, статическая переменная также исчезает до следующего запуска приложения, что снова инициализирует статическую переменную.

Кроме того, не то чтобы это имело большое значение, но если я использую несколько процессов, буду ли я получать совершенно разные ссылки на класс App для каждого процесса?

В качестве примера кода вот о чем я думаю:

public class App extends Application
{
    private static Context _appContext;

    @Override
    public void onCreate()
    {
        super.onCreate();
        _appContext = this;
    }

    public static Context getAppContext()
    {
        return _appContext;
    }
}
45
задан Brian Tompsett - 汤莱恩 7 June 2015 в 14:49
поделиться