Application
首先看下Application提供的外部函数。
onCreate
这个没什么好说的,每个应用进程都会创建一个Application实例。
onTerminate
这个函数只在模拟器环境下kill时会被调用,真机就不用管了。
ComponentCallbacks2
Application需要实现ComponentCallbacks2接口的方法,即onConfigurationChanged,onLowMemory,onTrimMemory。
public class Application extends ContextWrapper implements ComponentCallbacks2 {}
public interface ComponentCallbacks2 extends ComponentCallbacks {
void onTrimMemory(int level);
}
public interface ComponentCallbacks {
void onConfigurationChanged(@NonNull Configuration newConfig);
void onLowMemory();
}
onConfigurationChanged
当配置发生改变时被调用。比如横竖屏切换时会被调用。
onLowMemory
当系统内存不足时被调用,可以在此释放内存资源来维持应用不被kill。
onTrimMemory
当系统内存资源不足以维持当前的后台进程时被调用,可以根据返回的消耗内存资源的等级来进行相关操作,比如释放不必要的资源。
registerComponentCallbacks unregisterComponentCallbacks
用于注册/取消监听配置改变、内存变化。
registerActivityLifecycleCallbacks unregisterActivityLifecycleCallbacks
用于注册/取消Activity的生命周期。可以做一些统一操作。
Activity生命周期差不多都在这里了,将这个实例作为参数传入registerActivityLifecycleCallbacks即可观察进程内所有Activity的生命周期,从而在生命周期转变时进行一些操作。比如应用内Dialog的管理等。
registerOnProvideAssistDataListener unregisterOnProvideAssistDataListener
用于注册/取消监听协作请求。不明用途。
getProcessName
返回当前进程名。