zoukankan      html  css  js  c++  java
  • 检測用户是否是第一次打开应用

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


    /*方法一:
     * 首次打开的时候获取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/files
    File f = new File(dir, "com.example.test.isFirstIn");
    Log.e("miquan", f.getAbsolutePath());
    
    if(f.exists()) {
    	//dosomething
    	new AlertDialog.Builder(this).setMessage("你打开了n次了").show();
    } else {
    	try {
    		f.createNewFile();
    	} catch (IOException e) {
    		e.printStackTrace();
    	}
    	//dosomething
    	new AlertDialog.Builder(this).setMessage("这是第一次打开").show();
    }


  • 相关阅读:
    JAVA 调用https接口, java.security.cert.CertificateException
    Java泛型用法总结
    深入探索 Java 热部署
    单例模式
    Java中的事务——JDBC事务和JTA事务
    常见的网站攻击手段及预防措施
    JAVA 动态代理原理和实现
    详解 CAP 定理 Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)
    Set
    List
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4232148.html
Copyright © 2011-2022 走看看