1. 简介
对于Android应用程序,默认情况下,系统会生成一个Application对象,除非你进行了自定义Application类,并且在清单文件中指定了“android:name”属性为该自定义类的类名称。
例如:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.test.myapp"
......
<application android:icon="@drawable/icon"
android:allowBackup="false"
android:name=".core.MyApp"
android:debuggable="false"
android:label="@string/app_name"
android:theme="@android:style/Theme.Light"
tools:ignore="HardcodedDebugMode">
<activity android:name=".MainActivity"
android:configChanges="keyboardHidden|orientation|screenSize|navigation|keyboard"
android:excludeFromRecents="true"
android:exported="true"
android:finishOnTaskLaunch="false"
android:launchMode="singleInstance"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
2自定义Application的好处:
(1)可扩展;
(2)因为一个应用程序只有一个Application对象(或者其派生类对象),所以,可以作为全局对象来使用。可以在这个类中,进行全局数据的存储或全局函数的设置。例如,数据传递,数据共享 等,数据缓存等操作。
(3)作为单例模式,可以在任何其它组件或者模块中进行获取或者引用,避免了“有时候,Activity作为参数,在其它模块或组件销毁时无法即使销毁”的问题。例如:
<