Android 学习笔记 [2]:利用 SharedPreferences 判断 Android 应用是否首次运行

hjthjthjt 2月 26, 2018

这似乎是这个博客第一篇原创代码文章……?
是的没错虽然时间比 Intent 篇要早但是我还是给按到第二篇了.png

SharedPreferences 可以用来保存键值对,这里可以利用它来判断应用是否首次运行。

首先,新建一个 firstRun() 方法,把它设置为 private 且无返回值即可。

private void firstRun(){

}

接着,我们要借用 SharedPreferences.Editor 来获取一个相应的对象,这里我们将这个数据文件保存为data.xml,代码如下(这里这个 SharedPreferences.Editor 对象被命名为firstRun

SharedPreferences.Editor firstRun = getSharedPreferences("data",Context.MODE_PRIVATE).edit();

顺手读取 SharedPreferences(这里这个 SharedPreferences 对象被命名为firstBool

SharedPreferences firstBool = getActivity().getSharedPreferences("data",Context.MODE_PRIVATE);

然后我们用非常简单的 if 判断语句来判断是否第一次运行

if((firstBool.getBoolean("firstRun",true))){
    /*
    ...CODE...
    */
    firstRun.putBoolean("firstRun",false);
    firstRun.apply();
}

由于 getBoolean() 这个方法本身的特性,如果不存在 firstRun 这个键,就会被新建一个并且赋值为紧接着的值(这里我们是 true

if 判断是否为真,由于首次运行,此时执行了括号内的代码,firstRun 键被赋值为 true
但是在我们运行完需要执行的符合首次运行的代码后,只需要重新往firstRun 键中写入 false 即可。

这样,在后面的运行中由于firstRun 键一直是 false 状态,需要执行的符合首次运行的代码将永远不会被再次运行。

完整代码:

private void firstRun(){
    SharedPreferences.Editor firstRun = getActivity().getSharedPreferences("data",Context.MODE_PRIVATE).edit();
    SharedPreferences firstBool = getActivity().getSharedPreferences("data",Context.MODE_PRIVATE);
    if((firstBool.getBoolean("firstRun",true))){
    /*
    ...CODE...
    */
    firstRun.putBoolean("firstRun",false);
    firstRun.apply();
    }
}

本文采用 CC BY-NC-SA 3.0 协议进行许可,在您遵循此协议的情况下,可以自由共享与演绎本文章。
本文链接:https://jakting.com/archives/android-sharedpreferences-firstrun.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注