В чем разница между активностью и контекстом?


активность и контекст одинаковы, или есть различия?

когда я должен иметь метод передать действие, и когда контекст?

2 78

2 ответа:

насколько я понимаю: контекст является базовым объектом. Так что каждый активность то же, что и приложение вытекает из контекста. Это означает, что каждое действие и каждое приложение является контекстом;

С 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 этой деятельности).

поэтому, если вам нужен контекст в Activitys (т. е. в синглтоне), вам будет лучше использовать контекст приложения.

обычно на Android Framework методы, где ожидается контекст это не имеет никакого значения, какой из них вы проходите. Но будьте всегда в курсе MemoryLeaks если вы сохраняете долгоживущие ссылки на контекст

Как вы можете видеть на Android doc:

класс Activity простирается от "ContextThemeWrapper", и это один из "ContextWrapper", и что один из "контекста".

Итак, да, действие расширяет контекст!