Я часто гуглил этот вопрос и нашел много разных рекомендаций о том, когда использовать getBaseContext , getApplicationContext или собственный этот указатель *1005* этого действия.
Три правила, которые часто встречаются и, кажется, имеют большой смысл:
- Для долговременной ссылки на контекстное действие следует использовать getApplicationContext поскольку оно существует до тех пор, пока существует ваше приложение
- Для контекстов, жизненные циклы которых связаны с их действиями, следует использовать их собственный контекст активности ( this )
- Storeконтекстные указатели статически только с большой осторожностью (и, если возможно, совсем не так)
Если они верны, то зачем использовать getBaseContext ?
Я видел очень много примеров, когда новые намерения создаются с использованием -
Intent intent = new Intent(getBaseContext(), myClass.class);
В отличие от -
Intent intent = new Intent(this, myClass.class);
Какой правильный или рекомендуемый метод и почему?