Application类
Application和Activity,Service一样是Android框架中的一个系统组件,每当Android程序启动的时候,系统都会自动创建一个Application对象(默认名称application),用来存储系统的一些信息。
运行时,Android系统会为每个程序创建一个Application类的对象,只会创建一个。所以Application可以说是单例模式的一个类。
默认情况下,系统会为我们创建一个默认的Application对象,如果需要自定义一个Application对象,只需创建一个类并继承Application,并在AndroidManifest.xml中的application标签中进行注册,给application标签增加name属性,并添加自定义的application的类名即可。
启动Application时,系统会创建一个PID(进程ID),所有的Activity都会在此进程上运行,当我们在Application创建的时候进行全局变量的初始化,然后该应用中的所有Activity都可以取到这些变量,当我们在一个Activity中更改了这些变量时,那么在该应用中的其它Activity中此值就会改变。
生命周期
Application对象的生命周期是应用中最长的,它的生命周期就等于应用的生命周期。
使用方向
因为它是全局的单例模式,所以在不同的Activity,Service中获得的对象都是同一个对象,所以Application可以用来进行一些:传递数据、数据共享、全局方法和数据缓存等等。
使用
public class App extends Application {
public static Context sContext;
@Override public void onCreate() {
super.onCreate();
sContext = this;
}
}
<application
android:name=".App"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>