Android 判断应用 第一次启动

在Android中,在应用第一次启动或者应用的新版本的第一次启动的时候,为了判断应用是首次启动应用程序,最简单的方法,就是: 1、从manifest中读取到android:versionCode, 2、然后将其与preference中的versioncode做比较, 3、当preference中的versioncode小于manifest中的版本号时,则代表此次启动为该版本的首次启动,
关键代码很简单: [java] view plain copy
  1. PackageInfoinfo=getPackageManager().getPackageInfo(PACKAGE_NAME,0);
  2. intcurrentVersion=info.versionCode;
  3. SharedPreferencesprefs=PreferenceManager.getDefaultSharedPreferences(this);
  4. intlastVersion=prefs.getInt(VERSION_KEY,0);
  5. if(currentVersion>lastVersion){
  6. //如果当前版本大于上次版本,该版本属于第一次启动
  7. ......
  8. //将当前版本写入preference中,则下次启动的时候,据此判断,不再为首次启动
  9. prefs.edit().putInt(VERSION_KEY,currentVersion).commit();
  10. }

android实现应用程序只有在第一次启动时显示引导界面 ,以后就不在显示了


程序安装后第一次启动:
启动页-->功能介绍页-->系统主页
以后启动:
启动页-->系统主页

所以在启动页中判断一下就可以了

可以弄一个文件保存一个状态,推荐用SharedPreferences。

1.可以定义一个变量来判断程序是第几次运行,如果是第一次则跳转到引导的Activity,如果不是第一次则执行系统主页。

判断系统是第一次运行的代码实现如下:

在Activity中添加代码:

//使用SharedPreferences来记录程序的使用次数

SharedPreferencespreferences;

/** Called when the activity is firstcreated. */

@Override

publicvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//读取SharedPreferences中需要的数据

preferences= getSharedPreferences("count",MODE_WORLD_READABLE);

intcount =preferences.getInt("count", 0);

//判断程序与第几次运行,如果是第一次运行则跳转到引导页面

if(count == 0) {

Intentintent =newIntent();

intent.setClass(getApplicationContext(),BootActivity.class);

startActivity(intent);

finish();

}

Editor editor =preferences.edit();

//存入数据

editor.putInt("count", ++count);

//提交修改

editor.commit();

2.还有人说可以这样实现。第一次启动时,因为没SharedPreferences文件,所以为初始化值,比如true要显示,然后在将这个值赋为false,保存后,下次启动是读取SharedPreferences文件,找到值就为false。你在后面写判断要不要显示引导界面就好了。


[java] view plain copy print ?
  1. SharedPreferencessharedPreferences=this.getSharedPreferences("share",MODE_PRIVATE);
  2. booleanisFirstRun=sharedPreferences.getBoolean("isFirstRun",true);
  3. Editoreditor=sharedPreferences.edit();
  4. if(isFirstRun)
  5. {
  6. Log.d("debug","第一次运行");
  7. editor.putBoolean("isFirstRun",false);
  8. editor.commit();
  9. }else
  10. {
  11. Log.d("debug","不是第一次运行");
  12. }

更多相关文章

  1. eclipse adb 启动失败,无法匹配android设备 的解决方案
  2. Instrumentation学习基础(一)
  3. Android之3D物理引擎
  4. Apple IOS、Android、WebOS系统体系架构对比
  5. 编写Android中直接可运行的二进制文件
  6. (连载)Android(安卓)8.0 : 系统启动流程之Linux内核
  7. Android源码笔记--Activity的启动过程
  8. Android(安卓)手机上安装并运行 Ubuntu 12.04
  9. Android中AVD(Android(安卓)Virtual Device)不能启动的处理方法

随机推荐

  1. 使用curl加载xsl页面会返回实际的基数错
  2. 传入连接对象或在类中创建它? (OOP)
  3. 如何调试PHP之XDebug
  4. 防止Ajax创建表单的默认值
  5. php逐个汉字遍历字符串
  6. thinkPHP 获得当前请求的全部常量信息
  7. 如何使用ajax向php发送与每个按钮相关的
  8. PHP展示KMP拓展算法思想
  9. php标准库 SPL 数据结构之-----SplDoubly
  10. PHPCMS V9 的手机门户wap绑定单页面