Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

What is the difference between:

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

Can you elaborate with one simple example?

like image 798
Nikunj Patel Avatar asked Jul 28 '11 04:07

Nikunj Patel


People also ask

What is the difference between getContext () getApplicationContext () getBaseContext () and this?

getApplicationContext() - Returns the context for all activities running in application. getBaseContext() - If you want to access Context from another context within application you can access. getContext() - Returns the context view only current running activity.

What is baseContext?

baseContext is the base of your Activity Context which you can set using a delegate pattern. You already know you can create Context with any xyz configuration you want. You can combine your xyz configuration knowledge with Base Context and your Activity will load resources as you desire.


2 Answers

getApplicationContext() Application context is associated with the Applicaition and will always be the same throughout the life cycle.

getBasecontext() should not be used, just use Context instead of it which is associated with the activity and could possible be destroyed when the activity is destroyed.

getApplication() is available to Activity and Services only. Although in current Android Activity and Service implementations, getApplication() and getApplicationContext() return the same object, there is no guarantee that this will always be the case (for example, in a specific vendor implementation). So if you want the Application class you registered in the Manifest, you should never call getApplicationContext() and cast it to your application, because it may not be the application instance (which you obviously experienced with the test framework).

getParent() returns object of the activity if the current view is a child..In other words returns the activity object hosting the child view when called within the child.

like image 116
Ravi Avatar answered Sep 28 '22 20:09

Ravi


getApplicationContext() Application context is associated with the Application and will always be the same throughout the life cycle.

getBasecontext() should not be used, just use Context instead of it which is associated with the activity and can be destroyed when the activity is destroyed.

like image 40
Harinder Avatar answered Sep 28 '22 20:09

Harinder