Application


public class Application
extends ContextWrapper implements ComponentCallbacks2

java.lang.Object
   ↳ android.content.Context
     ↳ android.content.ContextWrapper
       ↳ android.app.Application


Base class for maintaining global application state. You can provide your own implementation by creating a subclass and specifying the fully-qualified name of this subclass as the "android:name" attribute in your AndroidManifest.xml's <application> tag. The Application class, or your subclass of the Application class, is instantiated before any other class when the process for your application/package is created.

Note: There is normally no need to subclass Application. In most situations, static singletons can provide the same functionality in a more modular way. If your singleton needs a global context (for example to register broadcast receivers), include Context.getApplicationContext() as a Context argument when invoking your singleton's getInstance() method.

Summary

Nested classes

interface Application.ActivityLifecycleCallbacks

 

interface Application.OnProvideAssistDataListener

Callback interface for use with Application#registerOnProvideAssistDataListener and Application#unregisterOnProvideAssistDataListener

Inherited constants

Public constructors

Application()

Public methods

static String getProcessName()

Returns the name of the current process.

void onConfigurationChanged(Configuration newConfig)

Called by the system when the device configuration changes while your component is running. If you override this method you must call through to the superclass implementation.

void onCreate()

Called when the application is starting, before any activity, service, or receiver objects (excluding content providers) have been created.

void onLowMemory()

This is called when the overall system is running low on memory, and actively running processes should trim their memory usage. If you override this method you must call through to the superclass implementation.

void onTerminate()

This method is for use in emulated process environments.

void onTrimMemory(int level)

Called when the operating system has determined that it is a good time for a process to trim unneeded memory from its process. If you override this method you must call through to the superclass implementation.

void registerActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks callback)
void registerComponentCallbacks(ComponentCallbacks callback)

Add a new ComponentCallbacks to the base application of the Context, which will be called at the same times as the ComponentCallbacks methods of activities and other components are called.

void registerOnProvideAssistDataListener(Application.OnProvideAssistDataListener callback)
void unregisterActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks callback)
void unregisterComponentCallbacks(ComponentCallbacks callback)

Remove a ComponentCallbacks object that was previously registered with registerComponentCallbacks(android.content.ComponentCallbacks).

void unregisterOnProvideAssistDataListener(Application.OnProvideAssistDataListener callback)

Inherited methods

Public constructors

Application

Added in API level 1
public Application ()

Public methods

getProcessName

Added in API level 28
public static String getProcessName ()

Returns the name of the current process. A package's default process name is the same as its package name. Non-default processes will look like "$PACKAGE_NAME:$NAME", where $NAME corresponds to an android:process attribute within AndroidManifest.xml.

Returns
String

onConfigurationChanged

Added in API level 1
public void onConfigurationChanged (Configuration newConfig)

Called by the system when the device configuration changes while your component is running. Note that, unlike activities, other components are never restarted when a configuration changes: they must always deal with the results of the change, such as by re-retrieving resources.

At the time that this function has been called, your Resources object will have been updated to return resource values matching the new configuration.

For more information, read Handling Runtime Changes. If you override this method you must call through to the superclass implementation.

Parameters
newConfig Configuration: This value cannot be null.

onCreate

Added in API level 1
public void onCreate ()

Called when the application is starting, before any activity, service, or receiver objects (excluding content providers) have been created.

Implementations should be as quick as possible (for example using lazy initialization of state) since the time spent in this function directly impacts the performance of starting the first activity, service, or receiver in a process.

If you override this method, be sure to call super.onCreate().

Be aware that direct boot may also affect callback order on Android Build.VERSION_CODES.N and later devices. Until the user unlocks the device, only direct boot aware components are allowed to run. You should consider that all direct boot unaware components, including such ContentProvider, are disabled until user unlock happens, especially when component callback order matters.


If you override this method you must call through to the superclass implementation.

onLowMemory

Added in API level 1
public void onLowMemory ()

This is called when the overall system is running low on memory, and actively running processes should trim their memory usage. While the exact point at which this will be called is not defined, generally it will happen when all background process have been killed. That is, before reaching the point of killing processes hosting service and foreground UI that we would like to avoid killing. If you override this method you must call through to the superclass implementation.

onTerminate

Added in API level 1
public void onTerminate ()

This method is for use in emulated process environments. It will never be called on a production Android device, where processes are removed by simply killing them; no user code (including this callback) is executed when doing so.
If you override this method you must call through to the superclass implementation.

onTrimMemory

Added in API level 14
public void onTrimMemory (int level)

Called when the operating system has determined that it is a good time for a process to trim unneeded memory from its process. You should never compare to exact values of the level, since new intermediate values may be added -- you will typically want to compare if the value is greater or equal to a level you are interested in.

To retrieve the processes current trim level at any point, you can use ActivityManager.getMyMemoryState(RunningAppProcessInfo). If you override this method you must call through to the superclass implementation.

Parameters
level int: The context of the trim, giving a hint of the amount of trimming the application may like to perform. Value is ComponentCallbacks2.TRIM_MEMORY_COMPLETE, ComponentCallbacks2.TRIM_MEMORY_MODERATE, ComponentCallbacks2.TRIM_MEMORY_BACKGROUND, ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN, ComponentCallbacks2.TRIM_MEMORY_RUNNING_CRITICAL, ComponentCallbacks2.TRIM_MEMORY_RUNNING_LOW, or ComponentCallbacks2.TRIM_MEMORY_RUNNING_MODERATE

registerActivityLifecycleCallbacks

Added in API level 14
public void registerActivityLifecycleCallbacks (Application.ActivityLifecycleCallbacks callback)

Parameters
callback Application.ActivityLifecycleCallbacks

registerComponentCallbacks

Added in API level 14
public void registerComponentCallbacks (ComponentCallbacks callback)

Add a new ComponentCallbacks to the base application of the Context, which will be called at the same times as the ComponentCallbacks methods of activities and other components are called. Note that you must be sure to use unregisterComponentCallbacks(ComponentCallbacks) when appropriate in the future; this will not be removed for you.

After Build.VERSION_CODES#TIRAMISU, the ComponentCallbacks will be registered to the base Context, and can be only used after attachBaseContext(android.content.Context). Users can still call to getApplicationContext().registerComponentCallbacks(ComponentCallbacks) to add ComponentCallbacks to the base application.

Parameters
callback ComponentCallbacks: The interface to call. This can be either a ComponentCallbacks or ComponentCallbacks2 interface.

registerOnProvideAssistDataListener

Added in API level 18
public void registerOnProvideAssistDataListener (Application.OnProvideAssistDataListener callback)

Parameters
callback Application.OnProvideAssistDataListener

unregisterActivityLifecycleCallbacks

Added in API level 14
public void unregisterActivityLifecycleCallbacks (Application.ActivityLifecycleCallbacks callback)

Parameters
callback Application.ActivityLifecycleCallbacks

unregisterComponentCallbacks

Added in API level 14
public void unregisterComponentCallbacks (ComponentCallbacks callback)

Remove a ComponentCallbacks object that was previously registered with registerComponentCallbacks(android.content.ComponentCallbacks).

After Build.VERSION_CODES#TIRAMISU, the ComponentCallbacks will be unregistered to the base Context, and can be only used after attachBaseContext(android.content.Context)

Parameters
callback ComponentCallbacks: The interface to call. This can be either a ComponentCallbacks or ComponentCallbacks2 interface.

unregisterOnProvideAssistDataListener

Added in API level 18
public void unregisterOnProvideAssistDataListener (Application.OnProvideAssistDataListener callback)

Parameters
callback Application.OnProvideAssistDataListener