I am very confused with the usage of all these that where should we use them.
Quote from original answer :
As the name suggests, its 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, package/application)
Activity is a Java code that supports a screen or UI. In other words, building block of the user interface is the activity.
Activity class is a pre-defined class in Android and every application which has UI must inherit it to create window. Activity represents the presentation layer of an Android application, e.g. a screen which the user sees. An Android application can have several activities and it can be switched between them during runtime of the application.
Note : Activity extends Context. Context not an Activity.
Activity is a subclass of Context, so whenever a context is required, either can be given.
getActivity() is at least a method on Fragment, to get the activity it is attached to.
Whenever a context is needed in an instance method of an activity, you can use
A context is needed whenever contextual info is needed, or when stuff needs to be displayed.