Виды Context
В Android существует несколько различных типов контекста (Context
), каждый из которых предоставляет доступ к разным системным ресурсам и функциональности. Вот некоторые из наиболее распространенных типов контекста и их различия:
getApplicationContext()
в Activity или context.applicationContext
внутри другого контекста.this
внутри Activity.this
внутри Service.ApplicationContext
может быть использован везде, где требуется контекст, тогда как ActivityContext
связан с жизненным циклом Activity.ActivityContext
вне жизненного цикла Activity может привести к утечкам памяти.ApplicationContext
предпочтительно для объектов, которые должны существовать в течение всего жизненного цикла приложения, чтобы избежать утечек памяти.Application | Activity | Service | Content Provider | Broadcast Receiver | |
---|---|---|---|---|---|
Show dialog | - | + | - | - | - |
Start activity | - | + | - 1 | - 1 | - 1 |
Inflate layout | - | + | - 2 | - 2 | - 2 |
Start service | + | + | + | + | + |
Bind to service | + | + | + | + | - |
Send to broadcast | + | + | + | + | + |
Register Broadcast receiver | + | + | + | + | - 3 |
Load resource value | + | + | + | + | + |