首页 > 代码库 > Android 使用Application类保存应用的全局数据

Android 使用Application类保存应用的全局数据

在实际应用我们经常需要对数据进行交互与保存,但Intent中默认的方法对传输数据是有类型限制的,当我们需要传输或保存一个复杂的泛型数据时,使用Application是一个很好的解决办法。       顾名思义,Application对应整个应用,就如Activity对应当前的活动窗口一样,当我们需要使用它的时候,一定要在AndroidManifest.xml中对它进行声明

 

    <application        android:name="MeterApplication"        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >   </application>

 

然后我们来到实体类,首先当其他类需要存取或调用的时候,首先调用本类的 getInstance()得到MeterApplication的对象,接下来就可以对不同类型的数据进行get,set操作了,这样形式的好处没有了 一般数据类型的限制,当我们需要跨一个或多个Activity保存或者读取复杂数据的时候,问题就迎刃而解了。

调用方法:  MeterApplication.getInstance().getXXX();   //读取

                     MeterApplication.getInstance().setXXX(X xxx);//存入

 

public class MeterApplication extends Application {    private List<ReadyTask> DownloadList;    private static MeterApplication instance;        private HashMap<String, List<ReadyTask>> DownLoadResult;       private List<String> UnitNumList;        private String CurOPNUM;                                             private boolean BlueConStatus;        private int CurStauts;   // 当前运行状态    @Override    public void onCreate() {        // TODO Auto-generated method stub        instance = this;        DownloadList = new ArrayList<ReadyTask>();        super.onCreate();    }    public boolean isBlueConStatus() {        return BlueConStatus;    }    public void setBlueConStatus(boolean blueConStatus) {        BlueConStatus = blueConStatus;    }    public List<String> getUnitNumList() {        return UnitNumList;    }    public void setUnitNumList(List<String> unitNumList) {        UnitNumList = unitNumList;    }    public HashMap<String, List<ReadyTask>> getDownLoadResult() {        return DownLoadResult;    }    public void setDownLoadResult(HashMap<String, List<ReadyTask>> downLoadResult) {        DownLoadResult = downLoadResult;    }    public static MeterApplication getInstance() {        return instance;    }    public List<ReadyTask> getDownloadList() {   //下载List的值        return DownloadList;    }    public void setDownloadList(List<ReadyTask> downloadList) {        DownloadList = downloadList;    }    public int getCurStauts() {        return CurStauts;    }    public void setCurStauts(int curStauts) {        CurStauts = curStauts;    }    public String getCurOPNUM() {        return CurOPNUM;    }    public void setCurOPNUM(String curOPNUM) {        CurOPNUM = curOPNUM;    }         }

 

Android 使用Application类保存应用的全局数据