MySpHelper.java
4.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
package com.example.modulepedometer.util;
import android.content.Context;
import android.content.SharedPreferences;
import android.util.Log;
/**
* sharedPreferencesHelper 可以指定写入模式
* //todo 其他人写的无法指定写入模式,这就造成,同一个APP的不同进程,访问的sp中的值不一致,造成保活服务没有可判断的标志位
*
* @author ShinnyYang
*/
public class MySpHelper {
private static MySpHelper sharedPreferencesHelper = null;
private static int SP_MODE;//指定模式
//单例模式,把Context传进去
public static MySpHelper getInstance(Context context, int MODE) {
SP_MODE = MODE;
if (sharedPreferencesHelper == null) {
synchronized (MySpHelper.class) {
if (sharedPreferencesHelper == null) {
sharedPreferencesHelper = new MySpHelper();
sharedPreferencesHelper.setContext(context);
return sharedPreferencesHelper;
}
}
}
return sharedPreferencesHelper;
}
private Context context;
public void setContext(Context context) {
this.context = context;
}
//取Boolean 型数据
public boolean getBoolean(String key, boolean defValue) {
try {
return getSP().getBoolean(key, defValue);
} catch (NullPointerException exception) {
Log.d("hcj", "" + exception);
return defValue;
}
}
//存Boolean 型数据
public void putBoolean(String key, boolean value) {
try {
SharedPreferences.Editor editor = getSP().edit();
editor.putBoolean(key, value);
editor.commit();
} catch (NullPointerException exception) {
Log.d("hcj", "" + exception);
}
}
//取Long 型数据
public long getLong(String key, long defValue) {
try {
return getSP().getLong(key, defValue);
} catch (NullPointerException exception) {
Log.d("hcj", "" + exception);
return defValue;
}
}
//存Long 型数据
public void putLong(String key, long value) {
try {
SharedPreferences.Editor editor = getSP().edit();
editor.putLong(key, value);
editor.commit();
} catch (NullPointerException exception) {
Log.d("hcj", "" + exception);
}
}
//取整型
public int getInt(String key, int defaultValue) {
try {
return getSP().getInt(key, defaultValue);
} catch (Exception e) {
Log.d("hcj", "" + e);
return defaultValue;
}
}
//存整型
public void putInt(String key, int value) {
try {
SharedPreferences.Editor editor = getSP().edit();
editor.putInt(key, value);
editor.commit();
} catch (Exception e) {
Log.d("hcj", "" + e);
}
}
//取String
public String getString(String key, String defValue) {
try {
return getSP().getString(key, defValue);
} catch (NullPointerException e) {
Log.d("hcj", "" + e);
return defValue;
}
}
//存String
public void putString(String key, String value) {
try {
SharedPreferences.Editor editor = getSP().edit();
editor.putString(key, value);
editor.commit();
} catch (NullPointerException e) {
Log.d("hcj", "" + e);
}
}
//清除数据
public void clear() {
try {
SharedPreferences.Editor editor = getSP().edit();
editor.clear();
editor.commit();
} catch (NullPointerException e) {
Log.d("hcj", "" + e);
}
}
//获得SharedPreferences对象
private SharedPreferences getSP() {
return context.getSharedPreferences("sp", SP_MODE);
}
private SharedPreferences getSP(String name) {
return context.getSharedPreferences(name, SP_MODE);
}
}