Android中构建自己的Application
通常我们在项目中需要设置一些全局变量,,方便在项目中其它组件之间使用,那么这时候我们可以扩展Application来实现这个功能,代码如下:
1: public class MyApplication extends Application {
2:
3: private static MyApplication singleton;
4:
5: private HashMap<String, Object> map = new HashMap<String, Object>();
6:
7:
8: public static MyApplication getInstance(){
9:
10: return singleton;
11:
12: }
13:
14:
15: //应用程序在启动时会调用此方法
16: @Override
17: public void onCreate() {
18: super.onCreate();
19:
20: //初始化我们的MyApplication
21: singleton = this;
22: }
23:
24:
25: //设置值
26: public void setValue(String key,Object value){
27:
28: map.put(key, value);
29:
30: }
31:
32: //获取值
33: public Object getValue(String key){
34:
35: return map.get(key);
36: }
37:
38: }
完成以上代码后,我们需要在AndroidManifest.xml中进行注册,代码如下:
1: <application android:icon="@drawable/icon" android:label="@string/app_name"
2: android:name="MyApplication">
3: 。。。。。
4:
5: </application>
注: android:name 指定了实现Application的子类,当设置了属性后,Android在启动此应用程序时会在其它组件之前构建此子类对象,如果没有设置,Android会使用Application类.
在项目中使用:
1: //在Activity1中存入值2: MyApplication .getInstance().setValue("id","123");;3:
4:
5: //在Activity2中可以获取值6: String id = MyApplication .getInstance().getValue("id").toString();