1、Application是什么?
Application和Activity,Service一样,是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象,
用来存储系统的一些信息。通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,
如果需要创建自己 的Application,也很简单创建一个类继承 Application并在manifest的application标签中进行注册
(只需要给Application标签增加个name属性把自己的 Application的名字定入即可)。
Android系统会为每个程序运行时创建一个Application类的对象且只创建一个、可以理解为单例模式的一个类。
它的生命周期是整个程序运行中最长的 因为它是全局的单例,所以在不同的Activity和Service中获取的都是一个对象。
一般会使用Application来进行一些数据传递,数据缓存的操作。
2、Application生命周期Application中包含了五个公开的方法
1)void onConfigurationChanged(Configuration newConfig)
2)void onCreate()
3)void onLowMemory()
4)void onTerminate()
5)void onTrimMemory()
第一个是在配置被改变时触发
第二个是在程序创建时创建
第三个内存不够时触发
第四个当终止程序时调用 但是不能保证一定调用
第五个是在内存清理时触发
3、实例展示
1 /** 2 * @author ljcheng 3 * @date 2019/6/29 4 */ 5 public class MyApplication extends Application { 6 7 private static String TAG = "MyApplication"; 8 9 @Override 10 public void onCreate() { 11 // 程序创建的时候执行 12 KLog.d(TAG, "onCreate"); 13 super.onCreate(); 14 } 15 16 @Override 17 public void onTerminate() { 18 // 程序终止的时候执行 19 //当终止应用程序对象时调用,不保证一定被调用,当程序是被内核终止以便为其他应用程序释放资源,那 20 //么将不会提醒,并且不调用应用程序的对象的onTerminate方法而直接终止进程 21 KLog.d(TAG, "onTerminate"); 22 super.onTerminate(); 23 } 24 25 @Override 26 public void onLowMemory() { 27 // 当后台程序已经终止资源还匮乏时会调用这个方法。好的应用程序一般会在这个方法里面释放一些不必 28 // 要的资源来应付当后台程序已经终止,前台应用程序内存还不够时的情况。 29 KLog.d(TAG, "onLowMemory"); 30 super.onLowMemory(); 31 } 32 33 @Override 34 public void onTrimMemory(int level) { 35 // 程序在内存清理的时候执行 36 KLog.d(TAG, "onTrimMemory"); 37 super.onTrimMemory(level); 38 } 39 40 @Override 41 //配置改变时触发这个方法 42 public void onConfigurationChanged(Configuration newConfig) { 43 KLog.d(TAG, "onConfigurationChanged"); 44 super.onConfigurationChanged(newConfig); 45 } 46 47 }