android 组件化架构读书笔记(二) Application的基础和作用

当app启动时最先启动的是Application,每个APP运行时仅创建唯一一个Application,用于存储系统的一些信息。

Application中比较重要的方法:

1.onCreate:在创建应用程序时回调的方法

2.onTerminate:当终止应用程序对象时调用,不保证一定被调用

3.onLowMemory:当后台程序已经终止且资源缺乏时调用。当后台程序已经终止、前台应用还不够时的时的情况下,好的应用程序一般会在这个方法中释放一些不必要的资源来应对

4.onConfigurationChanged:配置改变时触发这个方法,如手机屏幕旋转等。


registerActivityLifecycleCallbacks:当App内的Activity的生命周期发生改变时就会调用。

registerActivityLifecycleCallbacks和unregisterActivityLifecycleCallbacks:用于注册或注销App内所有Activity的生命周期的监听

======================================================================================

主模块和次模块都有一个Application时,可能会编译出错。

原因:gradle插件默认启用Maniifest Merger Tool,如果主模块和次模块的Application的配置中定义了相同属性(如android:icon和android:theme),则此时会合并失败。


编译合并存在四种情况:

1.主模块有Application,次模块没有自定义的Application,这时会自然引用主模块中的Application

2.主模块有自定义的Application,次模块没有,自动引入主模块的Application

3.次模块有自定义的Application,需要解决冲突,每个次模块的Application都需要添加上tools:replace字段

4..主模块有自定义的Application,次模块也有自定义的Application,在主模块的Application中添加上tools:replace解决冲突

P:添加tools:replace="android:icon,android:theme"(多个属性用“,”隔开),要在manifest的根标签上加入:"xmlns:tools="http://schemas.android.com/tools",否则找不到命域名。

猜你喜欢

转载自blog.csdn.net/css33/article/details/80716068