一、需求说明
应用有个功能依赖一个属性开关,如果关了每次进应用都会弹出一个提示,这个提示有个选项叫做【不再提示】,设置不在提示后,只要不断电,每次再进应用,不会弹出,但是断电后,需要重新弹。
二、实现方法
这里是用SystemProperty来实现的,自定义sys开头系统属性。
先了解下SystemProperty属性的规则:
-
"ro."开头的属性, 一旦设置,就不能再被改变;非 “ro.” 开头的属性值可以被修改。
例如:ro.his.prduct_model="KKK"这种产品型号。
-
"persist."开头的属性,可修改,断电修改值不受影响,如果是系统本身的属性恢复出厂后会恢复到原来的值,如果是应用自己新加的,恢复出厂属性就没了,因为属性表会按系统默认的重新覆盖写入。
例如:persist.setting.energy_saveing="1"设置节能开关,系统默认是关的,用户使用过程中会打开,只要恢复出厂又会变回默认值,关的状态。(生命周期和settingprovider类似)
-
"sys."开头的属性,可修改,但是只要断电重启,属性就没了,因为这个属性是存在内存的。
例如:这个就是我要用到的属性了,所以可以新建一个属性:sys.energy_tip.hide=“1”。属性值含义应用可自己设置。
三、SystemProperty设置获取工具类:
import java.lang.reflect.Method;
public class PropertyUtils {
private static Class<?> sPropertyClass = null;
private static Method sSetMethod;
private static Method sGetMethod;
private static Method sGetIntMethod;
public static void set(String prop, String value) {
try {