getApplicationContext (), getBaseContext (), getApplication (), getParent ()


94

В чем разница между:

  1. getApplicationContext()
  2. getBasecontext()
  3. getApplication()
  4. getParent()

Можете уточнить на одном простом примере?


1
пожалуйста, пройдите stackoverflow.com/questions/1026973/…, которые определяют то же самое, что и developer.android.com/reference/android/content/Context.html
Балбан

Ответы:


33

getApplicationContext() Контекст приложения связан с приложением и всегда будет одинаковым на протяжении всего жизненного цикла.

getBasecontext()не следует использовать, просто используйте Contextвместо него то, что связано с действием и может быть уничтожено при уничтожении действия.


16
как насчет getApplication () и getParent ()
Никундж Патель

107

getApplicationContext () Контекст приложения связан с приложением и всегда будет одинаковым на протяжении всего жизненного цикла.

getBasecontext () не следует использовать, просто используйте Context вместо него, который связан с действием и может быть уничтожен при уничтожении действия.

getApplication () доступен только для Activity и Services. Хотя в текущих реализациях Android Activity и Service getApplication () и getApplicationContext () возвращают один и тот же объект, нет гарантии, что это всегда будет так (например, в реализации конкретного поставщика). Поэтому, если вам нужен класс Application, который вы зарегистрировали в манифесте, вам никогда не следует вызывать getApplicationContext () и приводить его к своему приложению, потому что это может быть не экземпляр приложения (что вы, очевидно, испытали на тестовой платформе).

getParent () возвращает объект действия, если текущее представление является дочерним. Другими словами, возвращает объект действия, в котором находится дочернее представление, при вызове внутри дочернего представления.


16
Как вы упомянули, нам не следует использовать getBaseContext (), если он не так важен, то зачем он нужен в коде и каковы его основные преимущества. пожалуйста, расскажите мне об этом
Пир Фахим Шах

getBaseContext () следует использовать в очень специфических ситуациях. Существует очень хорошее объяснение здесь - medium.com/@ali.muzaffar/...
Ломжа
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.