I just wanted to know how many ways to get the context, which method used in which situation. Which one better to use, and what is the main and key deference between them.
Holding a reference to Activity in a long living object or thread can cause a memory leak. In this case, use application context.
There are mainly two types of Context that are available in Android.
A Context is a handle to the system; it provides services like resolving resources, obtaining access to databases and preferences, and so on. An Android app has activities. Context is like a handle to the environment your application is currently running in. The activity object inherits the Context object.
They are both instances of Context, but the application instance is tied to the lifecycle of the application, while the Activity instance is tied to the lifecycle of an Activity. Thus, they have access to different information about the application environment.
For Your better understands you should read android official blog. an also look at HackBod Answer.
There are some references URL which help you more about the context
Thanks
Context
class represents the local environment of an App, It encapsulates all the services and resources available to the app. There is a base class ApplicationContext
, and sub classes for components: Activity
, Service
etc.
Always prefer using ApplicationContext
because it is global and doesn't cause serious issues if its leaked, that is: an unused reference of it stays and is not garbage collected.
Sometimes you have to use sub components like Activity
or Service
as context. Use this when creating Intents, or creating UI Elements, or showing a toast etc. That is: functions that are specifically bound to these component's identity, its UI or its display window.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With