在Android app开发中有时候我们需要保存数据到本地,但是又担心app卸载数据会消失,这个时候SharePreference是不行的了,本地文件file保存呢,是可以的,但是比较麻烦,而且有被删掉的可能。
这里介绍一个比较简单、实用的方法:
这个方法就是把标识保存到系统配置(系统数据库)文件中,即使程序卸载也不影响,系统的配置文件。
代码示例:
import android.provider.Settings;
//设置系统配置文件中的数据,第一个参数固定的,但是需要上下文,第二个参数是保存的Key,第三个参数是保存的value
boolean mIs_save= Settings.System.putInt(getContentResolver(), "is_save", 1);//获取系统配置文件中的数据,第一个参数固定的,但是需要上下文,第二个参数是之前保存的Key,第三个参数表示如果没有这个key的情况的默认值
int save_value= Settings.System.getInt(getContentResolver(), "is_save", 0);
这里的保存数据类似SharePreference,保存的是键值对key-value,但是这里的数据是保存到系统文件中的,跟程序无关,但是在程序中是可以能够获取的。
这个系统配置文件的路径为:
/data/data/com.android.providers.settings/databases/
数据库的代码在:
frameworks\base\packages\SettingsProvider\src\com\android\providers\settings的DatabaseHelper类里面
运行前还要添加一个权限,否则会报错
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>