Application
在一个Android程序中有且只有一个Application对象,程序运行是,首先执行Application的onCreate方法,我们可以自定义个MyApplication来执行一些自己的操作
Application可以说是单例模式的一个类,Application的生命周期是整个程序最长的,它的生命周期等于这个程序的生命周期,我们可以通过Application来进行Activity间的
数据传递,共享和缓存。
使用getApplication需要this对象,所以通过Application来进行数据传递,不能用在一般的JAVA类中,只能在Activity和Service等中。
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
}
@Override
public void onTerminate() {
super.onTerminate();
}
}
Activity中获取
MyApplication app = (MyApplication)getApplication();
<application
android:name=".MyApplication"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".LifeActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name="com.qh.manifestdemo.ExampleService"></service>
</application>
单例:
全局保存数据,尽量使用单例
//第一中 单例模式
private final static DbManager instance = new DbManager();
private DbManager(){
}
public static DbManager getInstance() {
return instance;
}
//第二种单例模式 (第一次使用该类对象才创建节省启动时间和内存空间,不是线程安全,在多线程中如果同时调用可能产生不可预料后果)
private static DbManager instance;
private DbManager() {
super();
}
public static DbManager getInstance(){
if(null == instance){
instance = new DbManager();
}
return instance;
}