BOB(中国)官方入口-BOB真人官方

BOB综合网页版

BOB综合网页版 周详解析Application的行使

发布日期:2021-11-21 07:14    点击次数:179

序言 BOB综合网页版

Application类在每一次开发当中是吾们都会遇到的,每一个APP都会有一个Application实例,它拥有和APP相通长的生命周期,Application和APP一首“同生共物化”;

吾们今天就讲解下,强化下基础和内功,让本身更有自夸;

一、Application是什么? android编制会为每一个程序运走时创建一个Application类的对象且仅创建一个,因而Application能够说是单例模式的一个类; application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期。由于它是全局的单例的。因而在迥异的Activity,Service中获得的对象都是联相符个对象; Application和Activity,Service相通是Android框架的一个编制组件,当Android程序启动时编制会创建一个Application对象,用存储编制的一些新闻; 清淡吾们是不必要指定一个Application的,编制会自动帮吾们创建,倘若必要创建本身的Application,那也很浅易,创建一个类继承Application并在AndroidManifest.xml文件中的application标签中进走注册; 启动Application时,编制会创建一个PID,即进程ID,一切的Activity都会在此进程上运走; Application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期,由于它是全局的单例的,因而在迥异的Activity,Service中获得的对象都是联相符个对象,因而能够经历Application进走一些,BOB综合网页版如:数据传递、数据共享和数据缓存等操作; 二、Application类的手段

1、onCreate手段

继承自ContextWarpper类

public class Application extends ContextWrapper implements ComponentCallbacks2 { ... ... }  public void onCreate {  } 
在Application创建的时候调用清淡用于初首化一些东西如全局的对象环境的配置; 竖立全局共享数据如全局共享变量、手段等;

仔细:

共享数据只在行使程序的生命周期内有效当该行使程序被杀物化这些数据也会被清空因而只能存储一些具备一时性的共享数据

请不要实走耗时操作否则会拖慢行使程序启动速度;

2、onConfigurationChanged

重写此手段能够监听APP一些配相新闻的转折事件;BOB综合网页版

当配相新闻转折的时候会调用这个手段;

registerComponentCallbacks; 

3、onLowMemory手段

重写此手段能够监听Android编制集体内存较矮时候的事件; 调用时刻:Android编制集体内存较矮时;
registerComponentCallbacks; 

4、onTerminate手段

知照照顾行使程序现在内存行使情况 根据现在内存行使情况进走自身的内存资源的迥异水平开释以避免被编制直接杀失踪&优化行使程序的性能体验; 编制在内存不能时会遵命LRUCache中从矮到高杀物化进程;优先杀物化占用内存较高的行使;
registerComponentCallbacks; 

5、registerActivityLifecycleCallbacks

这两个手段用于注册或者刊出对APP内一切Activity的生命周期监听;

当APP内Activity的生命周期发生转折的时候就会调用ActivityLifecycleCallbacks内里的手段:

registerActivityLifecycleCallbacks; 

查望log打印的情况如下:

onActivityPaused: MainActivity  onActivityStopped: MainActivity  onActivityStarted: MainActivity  onActivityResumed: MainActivity 

6、registerComponentCallbacks手段

注册和刊出ComponentCallbacks2回调接口

registerComponentCallbacks; 
三、行使场景和自定义 1、行使场景 初首化行使程序级别的资源如全局对象; 数据共享、数据缓存; 获取行使程序现在的内存行使情况及时开释资源从而避免被编制杀物化; 监听行使程序配相新闻的转折如屏幕旋转等; 监听行使程序内一切Activity的生命周期; 2、自定义Application

继承Application

public class MyApplication extends Application{    /**声明变量*/     private String value;     @Override     public void onCreate{         return value;     } } 

仔细:继承Application类主要重写内里的onCreate就是创建的时候初首化变量的值。然后在整个行使中的各个文件中就能够对该变量进走操作了;

在ApplicationManifest.xml文件中配置自定义的Application

<application        android:name="MyApplication"> </application> 

行使自定义的Application类实例

private MyApplication app; // 只必要调用Activity.getApplication; 
总结

每个AndroidApp运走时会最先自动创建Application类并实例化Application对象且只有一个即Application类是单例模式类;

即迥异的组件都可获得Application对象且都是联相符个对象;

Application对象的生命周期是整个程序中最长的即等于AndroidApp的生命周期。

APP强制人脸识别?账号无法刊出?网信办脱手了 工信部:已下架540款违规处理用户新闻等拒不整改的App通报2049款 为什么微信在海表败给了中国人都不必的WhatsApp? ArkUI双范式超级实战-鸿蒙社区App第一季 APP强制人脸识别?账号刊出不了?国家要脱手了