To start an Activity you need an Intent, like:
Intent i = new Intent(context, class)
So to fill in the context parameter, a couple of options are available:
MyActivity.this
or just this
getApplicationContext()
getBaseContext()
And I'm sure there are one or two more options. These options all appear in some sort of tutorial, one uses the first, the next uses the third option.
So which one should I use? Does it even matter? Is it different for different cases?
Yes its different for different cases,
It depends on the scope. Suppose if you are creating a method in a global class that extends
Application
to create a Toast
that is used in every class of your Application
you can use getApplicationContext()
to create it.
If you want to create a view that is restricted to that particular Activity you can use Activity.this
Also if you want to create an AlertDialog in some inner class say AsyncTask
, then you have to use Activity.this
, because the AlertDialog
is to be linked to Activity
itself.
Also don't use getBaseContext()
just use the Context
that you are having. For getting further information for the same you can see this Answer
.
So, the answer to the real question is better to use Activity.this
to start a new Activity
.
Intent intent = new Intent(Current_Activity.this, Calling.class);
startActivity(intent);