每个app都有一个application实例,如果我们没有继承他,app就会创建一个默认的实例。
application有这个和app一样的长的生命周期,当app开启的时候,application的实例就会创建,app销毁的时候也会随之销毁。下面我们看一下他的使用方法。
public class Myapplication extends Application {

    final String TAG = "MyAppcliation";

    @Override
    public void onCreate() {

        /**
         *在应用程序启动之前,在
         创建任何其他应用程序*对象之前调用。实现应该尽可能快
         *(例如使用状态的延迟初始化),因为
         在此函数中花费的时间直接影响
         在进程中启动*第一个活动,服务或接收器的性能。
         *如果重写此方法,请务必调用super.onCreate()。
         */
        //这个函数是当程序刚开始的时候就会被调用,在程序刚开始的时候执行

        Log.e(TAG, "onCreate: ");
        super.onCreate();
    }

    @Override
    public void onTerminate() {
        Log.e(TAG, "onTerminate: ");
        super.onTerminate();
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        Log.e(TAG, "onConfigurationChanged: ");
        super.onConfigurationChanged(newConfig);
    }

    @Override
    public void onLowMemory() {
        Log.e(TAG, "onLowMemory: ");
        super.onLowMemory();
    }

    @Override
    public void onTrimMemory(int level) {
        Log.e(TAG, "onTrimMemory: ");
        super.onTrimMemory(level);
    }
}

1,首先,onCreate方法在Appliaction创建的时候调用,一般用于初始化一些东西,在这里不应该做过多的任务,如果任务过多就会直接影响我们第一个activity/service。如果你要重写这个方法必须调用super.onCreate()。

2,onTerminate :这个方法在程序结束的时候会调用,但是这个方法只用于在Android仿真机测试的时候,在android产品机上是不会调用的,所以这个方法并没有什么用。

3,onConfigurationChanged:重写此方法可以监听App一些配置信息的改变事件(如屏幕旋转)。当配置改变时会调用这个方法,这Manifest文件下的Activity标签里面配置 android:configChanges 相应的属性,会是activity配置在改变时不会冲洗,只会执行onConfigurationChanged()方法,如 android:configChanges="keyboardHidden|orientation|screenSize"可以是activity旋转是不重启.

4,onLowMemory:这个方法的作用是监听系统整体内存较低的时刻,当系统内存比较低时 会调用这个方法。

5,onTrimMemory:通知 应用程序 当前内存使用情况(以内存级别进行识别)
Application 的简单介绍和生命周期


应用场景

从这个类的方法可以看出,Application类的应用场景有:

  • 初始化 应用程序,如全局的对象,环境配置等。
  • 数据共享,数据缓存,设置全局共享变量,方法等。
  • 获取应用程序当前的内存使用情况,意识释放资源,从而避免被系统杀死。
  • 监听应用程序配置信息的改变,如屏幕旋转等。
  • 监听应用程序内所有Activity生命周期

具体使用:
1,继承Application类

public class Myapplication extends Application {

    final String TAG = "MyApplication";


    public String  My(){
        return TAG;
    }
}

2,在配置中定义Application的子类

<application
        ......
        android:name=".Myapplication"
        tools:ignore="GoogleAppIndexingWarning">
        
</application>

3,使用自定义的Application类实例


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Myapplication application = (Myapplication) getApplication();
        Log.e("onCreate", "onCreate: ;application.My()");
        ......

结果如下:

E/onCreate: onCreate: ;MyApplication

总结一下:
Application 的简单介绍和生命周期
以上就是Application的生命周期和简单的介绍。

参考自

如有错误,还请指出。

相关文章:

  • 2021-08-30
  • 2021-12-20
  • 2022-02-19
  • 2021-08-26
  • 2021-05-28
  • 2021-05-19
  • 2021-10-06
猜你喜欢
  • 2022-12-23
  • 2021-04-20
  • 2022-12-23
  • 2021-05-28
  • 2022-01-19
  • 2021-12-14
  • 2021-12-21
相关资源
相似解决方案