Android编程心得-使用Application类保存应用的全局数据

在实际应用我们经常需要对数据进行交互与保存,但Intent中默认的方法对传输数据是有类型限制的,当我们需要传输或保存一个复杂的泛型数据时,使用Application是一个很好的解决办法。

顾名思义,Application对应整个应用,就如Activity对应当前的活动窗口一样,当我们需要使用它的时候,一定要在AndroidManifest.xml中对它进行声明。

 

[html][/html] view plaincopy
  1.  <application
  2.      android:name=”MeterApplication”
  3.      android:allowBackup=”true”
  4.      android:icon=”@drawable/ic_launcher”
  5.      android:label=”@string/app_name”
  6.      android:theme=”@style/AppTheme” >
  7. </application>

 

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

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

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

[java][/java] view plaincopy
  1. public class MeterApplication extends Application {
  2.     private List<ReadyTask> DownloadList;
  3.     private static MeterApplication instance;
  4.     private HashMap<String, List<ReadyTask>> DownLoadResult;
  5.     private List<String> UnitNumList;
  6.     private String CurOPNUM;
  7.     private boolean BlueConStatus;
  8.     private int CurStauts;   // 当前运行状态
  9.     @Override
  10.     public void onCreate() {
  11.         // TODO Auto-generated method stub
  12.         instance = this;
  13.         DownloadList = new ArrayList<ReadyTask>();
  14.         super.onCreate();
  15.     }
  16.     public boolean isBlueConStatus() {
  17.         return BlueConStatus;
  18.     }
  19.     public void setBlueConStatus(boolean blueConStatus) {
  20.         BlueConStatus = blueConStatus;
  21.     }
  22.     public List<String> getUnitNumList() {
  23.         return UnitNumList;
  24.     }
  25.     public void setUnitNumList(List<String> unitNumList) {
  26.         UnitNumList = unitNumList;
  27.     }
  28.     public HashMap<String, List<ReadyTask>> getDownLoadResult() {
  29.         return DownLoadResult;
  30.     }
  31.     public void setDownLoadResult(HashMap<String, List<ReadyTask>> downLoadResult) {
  32.         DownLoadResult = downLoadResult;
  33.     }
  34.     public static MeterApplication getInstance() {
  35.         return instance;
  36.     }
  37.     public List<ReadyTask> getDownloadList() {   //下载List的值
  38.         return DownloadList;
  39.     }
  40.     public void setDownloadList(List<ReadyTask> downloadList) {
  41.         DownloadList = downloadList;
  42.     }
  43.     public int getCurStauts() {
  44.         return CurStauts;
  45.     }
  46.     public void setCurStauts(int curStauts) {
  47.         CurStauts = curStauts;
  48.     }
  49.     public String getCurOPNUM() {
  50.         return CurOPNUM;
  51.     }
  52.     public void setCurOPNUM(String curOPNUM) {
  53.         CurOPNUM = curOPNUM;
  54.     }
  55. }

标签