Являются ли Activity и Context одинаковыми или есть различия?
Когда мне следует передать метод Activity, а когда - Context?
Являются ли Activity и Context одинаковыми или есть различия?
Когда мне следует передать метод Activity, а когда - Context?
Ответы:
Насколько я понимаю:
контекст - это базовый объект. Так каждый деятельности такой же , как приложения происходит от контекста. Это означает, что каждое действие и каждое Application
ЯВЛЯЕТСЯ a Context
;
Из developer.android.com
активности
java.lang.Object
↳ android.content.Context
↳ android.content.ContextWrapper
↳ android.view.ContextThemeWrapper
↳ android.app.Activity
java.lang.Object
↳ android.content.Context
↳ android.content.ContextWrapper
↳ android.app.Application
Контекст приложения существует до тех пор, пока живо ваше приложение, в то время как контекст действия умирает вместе с вашим действием (он недействителен после onDestroy
этого действия).
Поэтому, если вам нужен контекст между действиями (например, в синглтоне), вам будет лучше использовать контекст приложения.
Обычно в методах Android Framework, где ожидается контекст, не имеет значения, какой из них вы передадите. Но всегда помните об утечках памяти, если вы храните долгоживущие ссылки на контекст.
Как вы можете видеть в документе Android :
Класс Activity расширяется от ContextThemeWrapper, этот - от ContextWrapper, а тот - от Context.
Итак, да, действие расширяет контекст!