SharedPreferences是Android平台上一个轻量级的存储类,提供了Android平台常规的Long、Int、String等等类型的保存,可以设置权限来限定使用起来很简单。存储的数据会以XML文件的形式保存在/data/data/工程名/shared_prefs/ 目录下。

Application是用来保存全局变量的,并且是在应用程序创建的时候就跟着创建了。所以当我们需要创建全局变量的时候,不需要再像 j2se那样需要创建public权限的static变量,而直接在application中去存储相应的全局变量。只需要调用Context的 getApplicationContext或者Activity的getApplication方法来获得一个application对象,然后再得到相应的成员变量便可。

同时android.app.Application的onCreate()方法是整个Android程序的入口点,所以整个应用程序的初始化工作可以在这里完成,他的继承关系如下:

java.lang.Object
+android.content.Context
+android.content.ContextWrapper
+android.app.Application

下面的例子同时使用了sharedpreference和Application,实现整个应用程序的初始化和数据的写入、读取。

 

?[Copy to clipboard] Download zuiniuwang.java
 
 
   
   
   
   
  1. /**  
  2.  * TestSharePreferences.java  
  3.  * com.androidtest.sharedpreferences  
  4.  *  
  5.  * Function: TODO  
  6.  *  
  7.  *   ver     date           author  
  8.  * ──────────────────────────────────  
  9.  *           2011-6-15      Leon  
  10.  *  
  11.  * Copyright (c) 2011, TNT All Rights Reserved.  
  12.  */  
  13.    
  14. package com.androidtest.sharedpreferences;  
  15.    
  16. import android.app.Application;  
  17. import android.content.Context;  
  18. import android.content.SharedPreferences;  
  19. import android.content.SharedPreferences.Editor;  
  20. import android.content.res.Configuration;  
  21. import android.util.Log;  
  22.    
  23. /**  
  24.  * ClassName:TestSharePreferences Function: TODO ADD FUNCTION Reason: TODO ADD  
  25.  * REASON  
  26.  *  
  27.  * @author Leon  
  28.  * @version  
  29.  * @since Ver 1.1  
  30.  * @Date 2011-6-15  
  31.  */  
  32. public class TestSharePreferences extends Application {  
  33.     private static final String TAG = TestSharePreferences.class  
  34.             .getSimpleName();  
  35.     private Integer sharedInteger ;  
  36.    
  37.     public Integer getSharedInteger() {  
  38.         return sharedInteger;  
  39.     }  
  40.    
  41.     public void setSharedInteger(Integer sharedInteger) {  
  42.         this.sharedInteger = sharedInteger;  
  43.     }  
  44.    
  45.     @Override  
  46.     public void onCreate() {  
  47.    
  48.         // TODO Auto-generated method stub  
  49.         super.onCreate();  
  50.         // 写入   第二个参数是设置此preferences的权限s  
  51.    
  52.         SharedPreferences preferences = this.getSharedPreferences(  
  53.                 "MusicCurrentPosition", Context.MODE_PRIVATE);  
  54.         if (!preferences.contains("key")) {  
  55.             Editor editor = preferences.edit();  
  56.             editor.putInt("key", 10000);  
  57.             editor.commit();  
  58.             Log.v(TAG , "写入数据 成功");  
  59.         }  
  60.    
  61.         //读出  
  62.         //第二个参数是指如果没有这个Key值,则返回的默认值  
  63.         sharedInteger = preferences.getInt("key", 20000);  
  64.         Integer myInt2 = preferences.getInt("myKey", 30000);  
  65.         Log.v(TAG, "sharedInteger : " + sharedInteger.toString() + " myInt2 :" + myInt2);  
  66.    
  67.     }  
  68.    
  69.     @Override  
  70.     public void onConfigurationChanged(Configuration newConfig) {  
  71.    
  72.         // TODO Auto-generated method stub  
  73.         super.onConfigurationChanged(newConfig);  
  74.    
  75.     }  
  76.    
  77.     @Override  
  78.     public void onLowMemory() {  
  79.    
  80.         // TODO Auto-generated method stub  
  81.         super.onLowMemory();  
  82.    
  83.     }  
  84.    
  85.     @Override  
  86.     public void onTerminate() {  
  87.    
  88.         // TODO Auto-generated method stub  
  89.         super.onTerminate();  
  90.    
  91.     }  
  92.    

记得要配置AndroidManifest

   
   
   
   
  1. <application android:icon="@drawable/icon" android:label="@string/app_name" 
  2. android:name=".sharedpreferences.TestSharePreferences">   
  3.