//application中初始化
@Override
public void onCreate() {
super.onCreate();
initSharef();
}
// 初始化SharedPrefence文件
private void initSharef() {
sp = getApplicationContext().getSharedPreferences("session", Context.MODE_PRIVATE);
editor = sp.edit();
}
public static boolean contains(String key) {
return sp.contains(key);
}
public static void putString(String key, String value) {
editor.putString(key, value);
editor.commit();
}
public static String gettString(String key, String defValue) {
return sp.getString(key, defValue);
}
public static void putInt(String key, int value) {
editor.putInt(key, value);
editor.commit();
}
public static boolean getBoolean(String key, Boolean defValue) {
return sp.getBoolean(key, defValue);
}
public static void putBoolean(String key, Boolean value) {
editor.putBoolean(key, value);
editor.commit();
}
public static int getInt(String key, int defValue) {
return sp.getInt(key, defValue);
}
public static void remove(String key) {
if (sp.contains(key)) {
editor.remove(key);
editor.commit();
}
}
public static void putObject(String key, Object obj) {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = null;
try {
oos = new ObjectOutputStream(bos);
oos.writeObject(obj);
String objValue = new String(Base64.encode(bos.toByteArray(), Base64.DEFAULT));
editor.putString(key, objValue);
editor.commit();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bos != null) {
bos.close();
}
if (oos != null) {
oos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
@SuppressWarnings("unchecked")
public static <T> T getObject(String key, Class<T> clazz) {
if (sp.contains(key)) {
String objectVal = sp.getString(key, null);
byte[] buffer = Base64.decode(objectVal, Base64.DEFAULT);
ByteArrayInputStream bais = new ByteArrayInputStream(buffer);
ObjectInputStream ois = null;
try {
ois = new ObjectInputStream(bais);
T t = (T) ois.readObject();
return t;
} catch (StreamCorruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
if (bais != null) {
bais.close();
}
if (ois != null) {
ois.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}