Android判断程序是否第一次运行
Android 判断应用 第一次启动
在Android中,在应用第一次启动或者应用的新版本的第一次启动的时候,为了判断应用是首次启动应用程序,最简单的方法,就是: 1、从manifest中读取到android:versionCode, 2、然后将其与preference中的versioncode做比较, 3、当preference中的versioncode小于manifest中的版本号时,则代表此次启动为该版本的首次启动,关键代码很简单: [java] view plain copy
- PackageInfoinfo=getPackageManager().getPackageInfo(PACKAGE_NAME,0);
- intcurrentVersion=info.versionCode;
- SharedPreferencesprefs=PreferenceManager.getDefaultSharedPreferences(this);
- intlastVersion=prefs.getInt(VERSION_KEY,0);
- if(currentVersion>lastVersion){
- //如果当前版本大于上次版本,该版本属于第一次启动
- ......
- //将当前版本写入preference中,则下次启动的时候,据此判断,不再为首次启动
- prefs.edit().putInt(VERSION_KEY,currentVersion).commit();
- }
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 ? - SharedPreferencessharedPreferences=this.getSharedPreferences("share",MODE_PRIVATE);
-
- booleanisFirstRun=sharedPreferences.getBoolean("isFirstRun",true);
- Editoreditor=sharedPreferences.edit();
-
- if(isFirstRun)
- {
- Log.d("debug","第一次运行");
- editor.putBoolean("isFirstRun",false);
- editor.commit();
- }else
- {
- Log.d("debug","不是第一次运行");
- }
更多相关文章
- eclipse adb 启动失败,无法匹配android设备 的解决方案
- Instrumentation学习基础(一)
- Android之3D物理引擎
- Apple IOS、Android、WebOS系统体系架构对比
- 编写Android中直接可运行的二进制文件
- (连载)Android(安卓)8.0 : 系统启动流程之Linux内核
- Android源码笔记--Activity的启动过程
- Android(安卓)手机上安装并运行 Ubuntu 12.04
- Android中AVD(Android(安卓)Virtual Device)不能启动的处理方法