检测用户是否是第一次打开应用

来源:互联网 发布:恐怖美术馆知乎 编辑:程序博客网 时间:2024/05/15 14:58

很多时候我们需要检测用户是不是第一次打开应用,从而初始化一些数据,或者打开引导界面等等。


/*方法一: * 首次打开的时候获取isFirstIn值,默认值为false * 获得false,证明不是第一次打开 * 获得true,证明是第一次打开;然后把isFirstIn值设为false * */SharedPreferences sp = getSharedPreferences("isFirstIn", Activity.MODE_PRIVATE);  boolean isFirstIn = sp.getBoolean("isFirstInWith1.4", true);  if(isFirstIn) {      SharedPreferences.Editor editor = sp.edit();      editor.putBoolean("isFirstInWith1.4", false);      editor.commit();            new AlertDialog.Builder(this).setMessage("这是第一次打开").show();  } else {      new AlertDialog.Builder(this).setMessage("你打开了n次了").show();  }

注:因为在用户安装新版本的时候,我们想要的也是显示第一次打开,但是版本更新是会保留上一版本的数据的,所以检测到的是之前有打开过。

所以我们在每一个版本检测的key中加入版本号,如上面的isFirstInWith1.4,其中1.4就是版本号。

/*方法二: * 在首次打开的时候检查是否存在文件(com.example.test.isFirstIn) * 如果已存在,证明不是第一次打开 * 不存在,证明是第一次打开;打开之后创建文件 * */File dir = getFilesDir();//   /data/data/com.example.test/filesFile f = new File(dir, "com.example.test.isFirstIn");Log.e("miquan", f.getAbsolutePath());if(f.exists()) {//dosomethingnew AlertDialog.Builder(this).setMessage("你打开了n次了").show();} else {try {f.createNewFile();} catch (IOException e) {e.printStackTrace();}//dosomethingnew AlertDialog.Builder(this).setMessage("这是第一次打开").show();}


6 0