Android判断程序是否第一次运行
Android 判断应用 第一次启动
在Android中,在应用第一次启动或者应用的新版本的第一次启动的时候,为了判断应用是首次启动应用程序,最简单的方法,就是: 1、从manifest中读取到android:versionCode, 2、然后将其与preference中的versioncode做比较, 3、当preference中的versioncode小于manifest中的版本号时,则代表此次启动为该版本的首次启动,关键代码很简单: [java] view plain copy
- PackageInfo info = getPackageManager().getPackageInfo(PACKAGE_NAME, 0);
- int currentVersion = info.versionCode;
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
- int lastVersion = 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);
int count = 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 ?
- SharedPreferences sharedPreferences = this.getSharedPreferences("share", MODE_PRIVATE);
- boolean isFirstRun = sharedPreferences.getBoolean("isFirstRun", true);
- Editor editor = sharedPreferences.edit();
- if (isFirstRun)
- {
- Log.d("debug", "第一次运行");
- editor.putBoolean("isFirstRun", false);
- editor.commit();
- } else
- {
- Log.d("debug", "不是第一次运行");
- }
更多相关文章
- Linux/Android——Input系统之InputMapper 处理 (八)
- [Android实例] 基于android的远程视频监控系统
- 在任意位置获取应用程序Context
- Android存储系统之架构篇
- 基于网络音频的Android播放程序简单示例