Application是android app中的一个组件,当android程序启动时系统会创建一个Application对象。android系统会为每一个app默认创建一个applicaiton而且只有一个applicaiton,所以applicaiton是单例的。通常我们不需要自己定义application,若你要Applicaiton中部署一些全局的东西或者为了方便的获得Context,那么你就需要自定义一个Applicaiton。步骤如下:
自定义MyApplicaiton继承Application
public class MyApplication extends Application{
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
//初始化一些全局信息
}
}
然后在AndroidMainifest中配置
<application
android:icon="@drawable/icon"
android:label="@string/app_name"
android:name="com.example.MyApplicaiton">
</application>
这样你就可以在Activity或service中调用getApplicaiton()方法来获得自定义的Applicaiton对象。
这里要注意的问题是,很多人习惯在Application中缓存一些数据,这样做是不可取的。因为当用户不再与app交互(按home键)时如果遇到内存低的情况,Applicaiton会被销毁,导致缓存数据的丢失,详细讨论见以下博文。
http://zmywly8866.github.io/2014/12/26/android-do-not-store-data-in-the-application-object.html