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();
posted @ 2011-06-27 21:36  胡言乱语  阅读(1226)  评论(2编辑  收藏  举报