What is 'Context' on Android?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP



What is 'Context' on Android?



In Android programming, what exactly is a Context class and what is it used for?


Context



I read about it on the developer site, but I am unable to understand it clearly.





Related to this question
– Christopher Perry
Jan 25 '13 at 6:41





In addition to @SourabSharma's excellent answer (unfortunately, it is not the accepted one), this blog post reviews Context through prism of Single Responsibility Principle: techyourchance.com/single-responsibility-principle
– Vasiliy
May 2 '17 at 10:01





30 Answers
30



Putting it simply:



As the name suggests, it's the context of current state of the application/object. It lets newly-created objects understand what has been going on. Typically you call it to get information regarding another part of your program (activity and package/application).



You can get the context by invoking getApplicationContext(), getContext(), getBaseContext() or this (when in a class that extends from Context, such as the Application, Activity, Service and IntentService classes).


getApplicationContext()


getContext()


getBaseContext()


this


Context



Typical uses of context:



Creating new objects:
Creating new views, adapters, listeners:


TextView tv = new TextView(getContext());
ListAdapter adapter = new SimpleCursorAdapter(getApplicationContext(), ...);



Accessing standard common resources:
Services like LAYOUT_INFLATER_SERVICE, SharedPreferences:


context.getSystemService(LAYOUT_INFLATER_SERVICE)
getApplicationContext().getSharedPreferences(*name*, *mode*);



Accessing components implicitly:
Regarding content providers, broadcasts, intent


getApplicationContext().getContentResolver().query(uri, ...);





In your example context.getSystemService(LAYOUT_INFLATER_SERVICE), where and how is context defined?
– Dennis
Dec 4 '12 at 21:47


context.getSystemService(LAYOUT_INFLATER_SERVICE)


context





It is well explained why we need context while dynamically creating a text view. But while dynamically creating arrays of text views we don't have to mention any context. Why is that so ? TextView textview = new TextView[10];
– Abhinav Arora
Dec 26 '14 at 8:09





@AbhinavArora when defining the array, you're not actually constructing an instance of any text views (you're basically just creating the space for them to go into). At the point you come to put any values into that array, you'll either need pre-created TextViews, or need a Context to allow you to create them.
– mc1arke
Mar 18 '15 at 7:57





Why do views need context? For example, what would TextView not be able to do if it didn't have the context?
– dinosaur
Apr 22 '16 at 17:33





A piece of code without a "Context" can run on each operating systems that has JVM. But if there is a context it should run on Android.If you want to use Android specific things(accessing device location, taking a photo, running a background service etc.) you need a context Although you don't need if you make an http request. Context can be assumed as a bridge between Java and Android.
– Faruk Toptas
Jun 16 '16 at 12:14




Consider Person-X is the CEO of a start-up software company.



There is a lead architect present in the company, this lead architect
does all the work in the company which involves such as database, UI
etc.



Now the CEO Hires a new Developer.



It is the Architect who tells the responsibility of the newly hired
person based on the skills of the new person that whether he will
work on Database or UI etc.



It's like access of android activity to the app's resource.



It's similar to when you visit a hotel, you want breakfast, lunch &
dinner in the suitable timings, right?



There are many other things you like during the time of stay. How do you
get these things?



You ask the room-service person to bring these things for you.



Here the room-service person is the context considering you are the
single activity and the hotel to be your app, finally the breakfast, lunch &
dinner have to be the resources.



Things that involve context are:



Another way to describe this: Consider context as remote of a TV & channel's in the television are resources, services, using intents etc - - - Here remote acts as an access to get access to all the different resources into foreground.



Different methods by which you can get context


getApplicationContext()


getContext()


getBaseContext()


this



Example:


TextView TV=new TextView(this);



this -> refers to the context of the current activity.


this





Ok, so the class derived from the Activity IS a context itself. That is why by passing this to the newly created views, we pass the context.
– Oleg
Jan 25 '15 at 14:40





I wonder if it's a good design decision to have the context accessible from so many different places? One static getContext() in the application would have been enough in my opinion.
– Trilarion
Dec 28 '15 at 9:05





@Trilarion... It depends on how you want to use context getApplicationContext(), getContext(),getBaseContext() ..... Refer this - > (stackoverflow.com/a/10641257)
– Devrath
Aug 14 '16 at 15:00


getApplicationContext()


getContext()


getBaseContext()





Just to expand the last piece with creating a textview: In some cases it may be necessary to call SomeActivityName.this. IN a thread for an instance, this refers to teh thread and not the activity
– Zoe
May 14 '17 at 10:37


SomeActivityName.this


this



Source



The topic of Context in Android seems to be confusing to many. People just know that Context is needed quite often to do basic things in Android. People sometimes panic because they try to do perform some operation that requires the Context and they don’t know how to “get” the right Context. I’m going to try to demystify the idea of Context in Android. A full treatment of the issue is beyond the scope of this post, but I’ll try to give a general overview so that you have a sense of what Context is and how to use it. To understand what Context is, let’s take a look at the source code:



https://github.com/android/platform_frameworks_base/blob/master/core/java/android/content/Context.java



What exactly is Context?



Well, the documentation itself provides a rather straightforward explanation: The Context class is an “Interface to global information about an application environment".



The Context class itself is declared as abstract class, whose implementation is provided by the Android OS. The documentation further provides that Context “…allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc".



You can understand very well, now, why the name is Context. It’s because it’s just that. The Context provides the link or hook, if you will, for an Activity, Service, or any other component, thereby linking it to the system, enabling access to the global application environment.
In other words: the Context provides the answer to the components question of “where the hell am I in relation to app generally and how do I access/communicate with the rest of the app?” If this all seems a bit confusing, a quick look at the methods exposed by the Context class provides some further clues about its true nature.



Here’s a random sampling of those methods:


getAssets()


getResources()


getPackageManager()


getString()


getSharedPrefsFile()



What do all these methods have in common? They all enable whoever has access to the Context to be able to access application-wide resources.



Context, in other words, hooks the component that has a reference to it to the rest of application environment. The assets (think ’/assets’ folder in your project), for example, are available across the application, provided that an Activity, Service or whatever knows how to access those resources.
Same goes for getResources() which allows to do things like getResources().getColor() which will hook you into the colors.xml resource (nevermind that aapt enables access to resources via java code, that’s a separate issue).


getResources()


getResources().getColor()


colors.xml



The upshot is that Context is what enables access to system resources and its what hooks components into the “greater app".
Let’s look at the subclasses of Context, the classes that provide the implementation of the abstract Context class.
The most obvious class is the Activity class. Activity inherits from ContextThemeWrapper, which inherits from ContextWrapper, which inherits from Context itself.
Those classes are useful to look at to understand things at a deeper level, but for now it’s sufficient to know that ContextThemeWrapper and ContextWrapper are pretty much what they sound like.
They implement the abstract elements of the Context class itself by “wrapping” a context (the actual context) and delegating those functions to that context.
An example is helpful - in the ContextWrapper class, the abstract method getAssets from the Context class is implemented as follows:


Context


Context


Context


Activity


Activity


ContextThemeWrapper


ContextWrapper


Context


ContextThemeWrapper


ContextWrapper


Context


ContextWrapper


getAssets


Context


@Override
public AssetManager getAssets()
return mBase.getAssets();



mBase is simply a field set by the constructor to a specific context.
So a context is wrapped and the ContextWrapper delegates its implementation of the getAssets method to that context. Let’s get back to examining the Activity class which ultimately inherits from Context to see how this all works.


mBase


ContextWrapper


Activity


Context



You probably know what an Activity is, but to review - it’s basically 'a single thing the user can do. It takes care of providing a window in which to place the UI that the user interacts with'.
Developers familiar with other APIs and even non-developers might think of it vernacularly as a “screen.” That’s technically inaccurate, but it doesn’t matter for our purposes. So how do Activity and Context interact and what exactly is going in their inheritance relationship?


Activity


Context



Again, it’s helpful to look at specific examples. We all know how to launch Activities. Provided you have “the context” from which you are you are starting the Activity, you simply call startActivity(intent), where the Intent describes the context from which you are starting an Activity and the Activity you’d like to start. This is the familiar startActivity(this, SomeOtherActivity.class).


startActivity(intent)


startActivity(this, SomeOtherActivity.class)



And what is this? this is your Activity because the Activity class inherits from Context. The full scoop is like this: When you call startActivity, ultimately the Activity class executes something like this:


this


this


Activity


Context


startActivity


Activity


Instrumentation.ActivityResult ar =
mInstrumentation.execStartActivity(
this, mMainThread.getApplicationThread(), mToken, this,
intent, requestCode);



So it utilizes the execStartActivity from the Instrumentation class (actually from an inner class in Instrumentation called ActivityResult).


execStartActivity


Instrumentation


Instrumentation


ActivityResult



At this point, we are beginning to get a peek at the system internals.



This is where OS actually handles everything. So how does Instrumentation start the Activity exactly? Well, the param this in the execStartActivity method above is your Activity, i.e. the Context, and the execStartActivity makes use of this context.


this


execStartActivity


execStartActivity



A 30,000 overview is this: the Instrumentation class keeps tracks of a list of Activities that it’s monitoring in order to do it’s work. This list is used to coordinate all of the activities and make sure everything runs smoothly in managing the flow of activities.



There are some operations which I haven’t fully looked into which coordinate thread and process issues. Ultimately, the ActivityResult uses a native operation - ActivityManagerNative.getDefault().startActivity() which uses the Context that you passed in when you called startActivity. The context you passed in is used to assist in “intent resolution” if needed. Intent resolution is the process by which the system can determine the target of the intent if it is not supplied. (Check out the guide here for more details).


ActivityResult


ActivityManagerNative.getDefault().startActivity()


Context


startActivity



And in order for Android to do this, it needs access to information that is supplied by Context. Specifically, the system needs to access to a ContentResolver so it can “determine the MIME type of the intent’s data".
This whole bit about how startActivity makes use of context was a bit complicated and I don’t fully understand the internals myself. My main point was just to illustrate how application-wide resources need to be accessed in order to perform many of the operations that are essential to an app. Context is what provides access to these resources.
A simpler example might be Views. We all know what you create a custom View by extending RelativeLayout or some other View class, you must provide a constructor that takes a Context as an argument. When you instantiate your custom View you pass in the context.
Why? Because the View needs to be able to have access to themes, resources, and other View configuration details.
View configuration is actually a great example. Each Context has various parameters (fields in Context’s implementations) that are set by the OS itself for things like the dimension or density of the display. It’s easy to see why this information is important for setting up Views, etc.


Context


ContentResolver


startActivity


Context


RelativeLayout


View


Context


Context



One final word:
For some reason people new to Android (and even people not so new) seem to completely forget about object-oriented programming when it comes to Android. For some reason, people try to bend their Android development to pre-conceived paradigms or learned behaviors.



Android has it’s own paradigm and a certain pattern that is actually quite consistent if let go of your pre-conceived notions and simply read the documentation and dev guide. My real point, however, while “getting the right context” can sometimes be tricky, people unjustifiably panic because they run into a situation where they need the context and think they don’t have it. Once again, Java is an object-oriented language with an inheritance design.



You only “have” the context inside of your Activity because your activity itself inherits from Context. There’s no magic to it (except for the all the stuff the OS does by itself to set various parameters and to correctly “configure” your context). So, putting memory/performance issues aside (e.g. holding references to context when you don’t need to or doing it in a way that has negative consequences on memory, etc), Context is an object like any other and it can be passed around just like any POJO (Plain Old Java Object).
Sometimes you might need to do clever things to retrieve that context, but any regular Java class that extends from nothing other than Object itself can be written in a way that has access to context; simply expose a public method that takes a context and then use it in that class as needed. This was not intended as an exhaustive treatment on Context or Android internals, but I hope it’s helpful in demystifying Context a little bit.





This is an excellent answer. Much better than the accepted one, which only says what everybody knows intuitively.
– Honza Kalfus
Feb 10 '17 at 10:44






this is the long answer you are looking for! well explained
– Nick Jian
Mar 29 '17 at 16:25





Excellent ans ! Seriously !
– ZeekHuge
Jun 9 '17 at 7:46





Hmmm, to me it all sounds like what we old timers used to call global variables, which was much frowned on when object orientation entered the scene 8-)
– Ulf Edholm
Aug 7 '17 at 20:55






This should be the accepted answer.
– AymenDaoudi
Dec 14 '17 at 5:24



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.



For more information, look in Introduction to Android development with Android Studio - Tutorial.





The link's content seems to have changed. Try Section "5.8. Context". But not much info there.
– avenmore
Sep 8 '12 at 8:59





It has been 2 years since I wrote this answer. It has moved to section 5.4. Have updated my answer to reflect..
– giulio
Nov 30 '12 at 0:47





I think it is now 7.4. I would edit the answer if there wasn't a character minimum.
– ecbrodie
May 14 '13 at 5:42





As new editions for Android come out, new features etc, Google will shuffle the doco around. Thanks for the update.
– giulio
May 15 '13 at 2:15






"An Android app has activities" - This line doesn't fit in your answer.
– Abhishek Jain
Apr 28 at 16:26



As long as your going to be thinking anyway, think big.



Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system.



It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc.



Activity diagram





Can you please explain the graph or share some resource explaining the same.
– Prateek
Oct 10 '13 at 10:04





Question was already answered. The idea of following graph is to show that Context class is start point of big hierarchy structure which lead to Activity class.
– Dmytro Danylyk
Oct 10 '13 at 13:14





I would agree with @Prateek , while I can possibly infer some things from the graph, without any reference or further explanation, this graph only helps those who already clearly understand what a Context is.
– Mike Williamson
Dec 6 '13 at 20:26


Context





Well, As someone who didn't understand them a minute ago it really helped me to do so.
– Behrooz
Nov 27 '14 at 6:49





This is a misleading answer. There is much more to Context than just being an ancestor of Activity. Besides the fact that you explain nothing at all about what a Context actually is, this 'answer' is at most 25% complete since you forgot about services and application which are also Context-es
– Tim Castelijns
Aug 14 '17 at 12:37



ANDROID AND CONTEXT



If you look through the various Android APIs, you’ll
notice that many of them take an android.content.Context object as a
parameter. You’ll also see that an Activity or a Service is usually used as a
Context. This works because both of these classes extend from Context.


android.content.Context



What’s Context exactly?



Per the Android reference documentation, it’s an
entity that represents various environment data. It provides access to local
files, databases, class loaders associated to the environment, services including system-level services, and more. Throughout this book, and in your day-to-
day coding with Android, you’ll see the Context passed around frequently.
From: "Android in Practice" book.



An Android Context is an Interface that allows access to application specific resources and class and information about application environment.



If your android app was a web app,
your context would be something
similar to ServletContext ( I am not making an exact comparison here)



Your activities and services also extend Context to they inherit all those methods to access the environment information in which the app is running.





AS per Android 4.1 Context is an abstract class, which provide various method to access the application environment.
– Rakesh
Sep 10 '12 at 15:43





As of API Level 1 Context is an abstract class not as of 4.1
– Sankar V
Oct 23 '13 at 13:05





It's an abstract class...
– Luis Pena
Mar 2 '14 at 15:11





People, when I quote "interface" I don't mean a java interface, but interface in a general sense.
– naikus
Mar 3 '14 at 5:05





Obviously, some novices just don't understand what an "interface" is. They just think it as a java interface. For their reference, I've added a link. Please think before you downvote
– naikus
Mar 3 '14 at 5:12



Simple Example to understand context in android :


context



Every boss has an assistant to look after, to do all less important and time consuming tasks. If a file or a cup of coffee is needed, assistant is on the run. Some bosses barely know what’s going on in the office, so they ask their assistants regarding this too. They do some work themselves but for most other things they need help of their assistants.



In this scenario,



Boss – is the Android application



Assistant – is context



Files/Cup of coffee – are resources



We generally call context when we need to get information about different parts of our application like Activities, Applications etc.



Some operations(things where assistant is needed) where context is involved:



Loading common resources
Creating dynamic views
Displaying Toast messages
Launching Activities etc.
Different ways of getting context:


getContext()

getBaseContext()

getApplicationContext()

this



What can you do with it ?



Ways to get context :


getApplicationContext()


getContext()


getBaseContext()



Just putting it out there for newbies;



So First understand Word Context :



In english-lib. it means:



"The circumstances that form the setting for an event, statement, or
idea, and in terms of which it can be fully understood and assessed."



"The parts of something written or spoken that immediately precede and
follow a word or passage and clarify its meaning."



Now take the same understanding to programming world:



context of current state of the application/object. It lets newly created objects understand what has been going on. Typically you call it to get information regarding another part of your program (activity, package/application)



You can get the context by invoking getApplicationContext(), getContext(), getBaseContext() or this (when in the activity class).


getApplicationContext()


getContext(), getBaseContext()


this



To Get Context Anywhere in application use following code:



Create new class AppContext inside your android application


AppContext


public class AppContext extends Application

private static Context context;

public void onCreate()
super.onCreate();
AppContext.context = getApplicationContext();


public static Context getAppContext()
return AppContext.context;




Now any time you want application context in non-activity class, call this method and you have application context.



Hope this help ;)



Think of it as the VM that has siloed the process the app or service is running in. The siloed environment has access to a bunch of underlying system information and certain permitted resources. You need that context to get at those services.



Context is a reference to the current object as this. Also context allows access to information about the application environment.



The class android.content.Context provides the connection to the Android system and the resources of the project. It is the interface to global information about the application environment.


android.content.Context



The Context also provides access to Android Services, e.g. the Location Service.



Activities and Services extend the Context class.


Context



Context is basically for resource access and getting the environment details of the application(for application context) or activity (for activity context) or any other...



In order to avoid memory leak you should use application context for every components that needs a context object.... for more click here



Context is context of current state of the application/object.Its an entity that represents various environment data . Context helps the current activity to interact with out side android environment like local files, databases, class loaders associated to the environment, services including system-level services, and more.



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. It’s like a handle to the environment your application is currently running in. The activity object inherits the Context object.



Different invoking methods by which you can get context
1. getApplicationContext(),
2. getContext(),
3. getBaseContext()
4. or this (when in the activity class).



Context is Instances of the the class android.content.Context provide the connection to the Android system which executes the application. For example, you can check the size of the current device display via the Context.



It also gives access to the resources of the project. It is the interface to global information about the application environment.



The Context class also provides access to Android services, e.g., the alarm manager to trigger time based events.



Activities and services extend the Context class. Therefore they can be directly used to access the Context.



Context is an interface to global information about an application environment. It's an abstract class whose implementation is provided by the Android system.


Android



Context allows access to application-specific resources and classes, as well as calls for application-level operations such as launching activities, broadcasting and receiving intents, etc.


Context


launching activities, broadcasting and receiving intents, etc.



Here is Example


public class MyActivity extends Activity {

public void Testing() {

Context actContext = this; /*returns the Activity Context since Activity extends Context.*/

Context appContext = getApplicationContext(); /*returns the context of the single, global Application object of the current process. */

Button BtnShowAct1 = (Button) findViewById(R.id.btnGoToAct1);
Context BtnContext = BtnShowAct1.getContext(); /*returns the context of the View. */



For more details you can visit http://developer.android.com/reference/android/content/Context.html



Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc.



Instances of the the class android.content.Context provide the connection to the Android system which executes the application. For example, you can check the size of the current device display via the Context.



It also gives access to the resources of the project. It is the interface to global information about the application environment.



The Context class also provides access to Android services, e.g., the alarm manager to trigger time based events.



Activities and services extend the Context class. Therefore they can be directly used to access the Context.



A Context is what most of us would call Application. It's made by the Android system and is able to do only what an application is able to.
In Tomcat, a Context is also what I would call an application.


Context



There is one Context that holds many Activities, each Activity may have many Views.



Obviously, some will say that it doesn't fit because of this or that and they are probably right, but saying that a Context is your current application will help you to understand what you are putting in method parameters.



Boss Assistant Analogy



Lets have a small analogy before diving deep in the technicality of Context



Every Boss has an assistant or someone( errand boy) who does less
important and more time consuming things for him. For example if they
need a file or coffee then an assistant will be on run. Boss will not
know what is going on in the background but the file or the task will
be delivered



So Here

Boss - Android Application

Assistant - Context

File or cup of coffee - Resource



Context is your accesss point for application related resources



Lets see some of such resources or tasks



Launching an activity.



Getting absolute path to the application specific cache directory on
the filesystem.



Determining whether the given permission is allowed for a particular
process and user ID running in the system.



Checking whether you have been granted a particular permission.



And so on.

So if Android application wants to start an activity, it goes straight to Context (Access Point), and the Context class gives him back the resources(Intent in this case).


Context


Context



Like any other class Context class too has fields and methods.

You can explore more about Context in official documentation, it covers pretty much everything, available methods, fields and even how to use fields with methods.


Context


Context





you've just copied an answer from below???
– Dilshad Abduwali
Sep 22 '17 at 6:11





thanks for heads up @dhssa . I was trying to provide the gist of Android docs .. Shoul've been more careful . Removed the "copied" part
– Rohit Singh
Sep 22 '17 at 6:56




Context means Android get to know in which activity I should go for or act in.



1 - Toast.makeText(context, "Enter All Details", Toast.LENGTH_SHORT).show();
it used in this.
Context context = ActivityName.this;



2 -startActivity(new Intent(context,LoginActivity.class));



in this context means from which activity you wanna go to other activity.
context or ActivityName.this is faster then , getContext and getApplicatinContext.



If you want to connect Context with other familiar classes in Android, keep in mind this structure:



Context < ContextWrapper < Application



Context < ContextWrapper < ContextThemeWrapper < Activity



Context < ContextWrapper < ContextThemeWrapper < Activity <
ListActivity



Context < ContextWrapper < Service



Context < ContextWrapper < Service < IntentService



So, all of those classes are contexts in their own way. You can cast Service and ListActivity to Context if you wish. But if you look closely, some of the classes inherit theme as well. In activity or fragment, you would like theming to be applied to your views, but don't care about it Service class, for instance.



I explain the difference in contexts here.



Putting simple, Androids Context is a mess that you won't love until you stop worrying about.


Context



Android Contexts are:


Context



God-objects.



Thing that you want to pass around all your application when you are starting developing for Android, but will avoid doing it when you get a little bit closer to programming, testing and Android itself.



Unclear dependency.



Common source of memory leaks.



PITA for testing.



Actual context used by Android system to dispatch permissions, resources, preferences, services, broadcasts, styles, showing dialogs and inflating layout. And you need different Context instances for some separate things (obviously, you can't show a dialog from an application or service context; layouts inflated from application and activity contexts may differ).


Context



The Context is the android specific api to each app-s Sandbox
that provides access app private data like to resources, database, private filedirectories, preferences, settings ...



Most of the privatedata are the same for all activities/services/broadcastlisteners of one application.



Since Application, Activity, Service implement the Context interface they can be used where an api call needs a Context parameter



 Context means current.
Context use to do operation for current screen.
ex.

  1. getApplicationContext()

  2. getContext()


Context


Context


Toast.makeText(getApplicationContext(), "hello", Toast.LENGTH_SHORT).show();



Context means component (or application) in various time-period. If I do eat so many food between 1 to 2 pm then my context of that time is used to access all methods (or resources) that I use during that time. Content is an component (application) for particular time. Context of components of application keeps changing based on the underlying lifecycle of the components or application.
For instance, inside the onCreate() of an Activity,


Context


Context


Activity



getBaseContext() -- gives the context of the Activity that is set (created) by the constructor of activity.
getApplicationContext() -- gives the Context setup (created) during the creation of application.


getBaseContext()


context


Activity


getApplicationContext()


Context



Note: <application> holds all Android Components.


<application>


<application>
<activity> .. </activity>

<service> .. </service>

<receiver> .. </receiver>

<provider> .. </provider>
</application>



It means, when you call getApplicationContext() from inside whatever component, you are calling the common context of the whole application.


getApplicationContext()



Context keeps being modified by the system based on the lifecycle of components.


Context



Context in Android is an interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc.





I hope you didn't just copy and paste that from a Google search. Being somewhat optimistic, we'll have the base assumption that the OP already tried googling a definition but came here to get a more cohesive and detailed description of a Context with hopefully some examples provided. And not a google-found text book definition.
– Subby
Jan 22 '14 at 11:16


Context





@Subby Amusingly, he did: developer.android.com/reference/android/content/Context.html
– user146043
Feb 1 '14 at 14:52






@Poldie From Google docs as well... Oh dear oh dear.
– Subby
Feb 3 '14 at 11:12



This attribute declares which activity this layout is associated with by default.



In Java, we say this keyword refers to the state of the current object of the application.


Similarly, in an alternate we have Context in Android Development.


Context



This can be defined either explicitly or implicitly,


Context con = this;

getApplicationContext();

getBaseContext();

getContext();





Could be just the object of the current activity I think. I use it as if it were this way a few times.
– Ohiovr
Dec 27 '16 at 0:56





There is a large variety of ways to get context. Calling this only works in activities. Context isn't an alternative to "this" - context is used to access system features, and a lot more. You are over-simplifying Context and missing the main point with it.
– Zoe
Jul 14 '17 at 15:18


this




Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).



Would you like to answer one of these unanswered questions instead?

Popular posts from this blog

Firebase Auth - with Email and Password - Check user already registered

Dynamically update html content plain JS

How to determine optimal route across keyboard