android的Application是随着app同生共死的,它是android的一个系统组件。因为Application对于同一个应用程序是唯一的,所以我们通常用它来存储一些系统信息,这些系统信息是可以被整个app共享的。比如你在application里定义了一个int a = 0;然后再activity里修改它的值为1,那么别的activity获取到它的值的时候就是1了。这一点和普通的类的区别是不用使用public static这样的关键字去创建全局变量,而是直接定义在application中就可以了。
那么如何使用Application呢?
我们需要定义一个自己的类来继承Application。
例:
//定义MyApplication 继承Application
public class MyApplication extends Application {
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
}
}
定义了这个类之后,我们还需要在AndroidManifest.xml里来声明它。
只要指定
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.volley"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:name="com.example.volley.MyApplication"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.volley.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>
</application>
</manifest>
Application的生命周期
public class MyApplication extends Application {
@Override
public void onCreate() {
// 程序创建的时候执行
super.onCreate();
}
@Override
public void onTerminate() {
// 程序终止的时候执行
super.onTerminate();
}
@Override
public void onLowMemory() {
// 低内存的时候执行
super.onLowMemory();
}
@Override
public void onTrimMemory(int level) {
// 程序在内存清理的时候执行
super.onTrimMemory(level);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
//程序配置改变的时候调用
super.onConfigurationChanged(newConfig);
}
}