Android编程心得-使用Application类保存应用的全局数据
2017-05-14 11:21
537 查看
在实际应用我们经常需要对数据进行交互与保存,但Intent中默认的方法对传输数据是有类型限制的,当我们需要传输或保存一个复杂的泛型数据时,使用Application是一个很好的解决办法。
顾名思义,Application对应整个应用,就如Activity对应当前的活动窗口一样,当我们需要使用它的时候,一定要在AndroidManifest.xml中对它进行声明。
[html] view plain copy print? <application
android:name=“MeterApplication”
android:allowBackup=“true”
android:icon=“@drawable/ic_launcher”
android:label=“@string/app_name”
android:theme=“@style/AppTheme” >
</application>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
然后我们来到实体类,首先当其他类需要存取或调用的时候,首先调用本类的getInstance()得到MeterApplication的对象,接下来就可以对不同类型的数据进行get,set操作了,这样形式的好处没有了一般数据类型的限制,当我们需要跨一个或多个Activity保存或者读取复杂数据的时候,问题就迎刃而解了。
调用方法: MeterApplication.getInstance().getXXX(); //读取
MeterApplication.getInstance().setXXX(X xxx);//存入
[java] view plain copy print?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; } }
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
顾名思义,Application对应整个应用,就如Activity对应当前的活动窗口一样,当我们需要使用它的时候,一定要在AndroidManifest.xml中对它进行声明。
[html] view plain copy print? <application
android:name=“MeterApplication”
android:allowBackup=“true”
android:icon=“@drawable/ic_launcher”
android:label=“@string/app_name”
android:theme=“@style/AppTheme” >
</application>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
<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);//存入
[java] view plain copy print?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; } }
![](https://oscdn.geek-share.com/Uploads/Images/Content/201701/9cc493f1e15b23d0f4eaea0d0f8b35d0.png)
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类保存应用的全局数据
- Android 使用Application类保存应用的全局数据
- Android 使用Application类保存应用的全局数据
- android使用application保存全局变量
- Android中Application使用,保存应用程序全局变量
- Android 用application保存全局变量,关于Android中传递数据的一些讨论
- Android学习札记49:在Android中使用Application保存全局变量
- 在Android中使用Application保存全局变量
- android 使用Application保存全局变量
- Android 用application保存全局变量,关于Android中传递数据的一些讨论
- Android 全局变量Application 来统筹整个应用的公共数据-----广播通信
- android应用全局数据的使用- 写入数据: SharedPreferences(三)
- android 通过Application类 共享全局数据
- Android用Application设置全局变量以及使用
- Android应用开发之使用SharedPreferences存储复杂类型的数据
- Android 保存全局数据
- Android中用Application类实现全局数据变量的使用
- Android应用中使用GridView实现数据网格显示(传智播客视频笔记)
- Android用Application设置全局变量以及使用
- 在android中使用java 的preferences来保存数据