Вы используете getApplicationContext () только тогда, когда знаете, что вам нужен контекст для чего-то, что может жить дольше, чем любой другой вероятный контекст, который у вас есть.Сценарии включают:
Используйте getApplicationContext (), если вам нужно что-то привязать к контексту, который сам по себе будет иметь глобальную область видимости.Я использую getApplicationContext (), например, в WakefulIntentService, для статического WakeLock, который будет использоваться для службы.Поскольку этот WakeLock является статическим, и мне нужен контекст, чтобы получить его в PowerManager для его создания, безопаснее всего использовать getApplicationContext ().
Использовать getApplicationContext () при привязке к Сервису из Activity, если выхотите передать ServiceConnection (т. е. дескриптор привязки) между экземплярами Activity через onRetainNonConfigurationInstance ().Android внутренне отслеживает привязки через эти ServiceConnections и содержит ссылки на контексты, которые создают привязки.Если вы выполняете привязку из Activity, то у нового экземпляра Activity будет ссылка на ServiceConnection, которая имеет неявную ссылку на старую Activity, а старая Activity не может быть собрана сборщиком мусора.
и в случае, если вы захотитеполучить текущую ориентацию, тогда вы можете использовать:
Activity.getResources (). getConfiguration (). Ориентация
Вместо вызова этого с контекстом приложения используйте ниже
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if( (newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE))
{ mainBinding.layoutDrawerView.openDrawer(GravityCompat.END);
}
}