在Android中意图告诉应用程序是否第一次安装

时间:2014-02-04 06:15:06

标签: android iphone android-intent

我的应用说明如下: 我们有一个大型数据库,它有很多数据(假设它是一个谷歌服务器,它有很多关于每个用户的数据)。我们将在另一台服务器中处理数据(对我们的应用程序很有用),并在app数据库中存储相关数据应用程序的第一页显示了数据库中的一些已处理数据 问题是,处理每个用户数据并存储在应用数据库中并不聪明,因为每个用户都不会使用我们的应用程序(比如说每个谷歌用户都不会使用每个谷歌应用程序)。

我们计划在用户安装应用程序时,我们将该特定用户的数据从主数据库处理到应用程序数据库并显示相关信息。 有人可以指导我完成这个

3 个答案:

答案 0 :(得分:1)

我不得不面对同样的问题, 我通过在SharedPreferences中设置一个标志来管理它,当下次app进入活动时,它会检查标志是否设置。如果是第一次,它将返回false。你可以根据情况做你的代码。

//LaunchfirstTimeFlag true, default
if(LaunchfirstTimeFlag) {
LaunchfirstTimeFlag = false;
update in SharedPreferences
// your code
} else{
// your code
}

//SharedPref sample code below.
SharedPreferences preferance = getSharedPreferences(APP_PREFERENCES, MODE_PRIVATE);
SharedPreferences.Editor prefEditor = preferance.edit();
prefEditor.putBoolean("FirstTimeFlag", false);
prefEditor.commit();

答案 1 :(得分:0)

在应用启动时检查文件是否存在,如果不存在,则首先启动,创建文件以指示首次启动。代替文件,还有其他方法可以在iOS上创建第一个启动标志,例如NSUserDefaults,钥匙串,iCloud Key Value Store等。

注意:即使标题声明Android,问题也标记为iPhone。

答案 2 :(得分:0)

试试这段代码:

        PackageInfo info = getActivity().getPackageManager().getPackageInfo(YOUR_APP_PACKAGE_NAME, 0);
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
          int lastVersion = prefs.getInt(PreferencesActivity.KEY_HELP_VERSION_SHOWN, 0);
          int currentVersion = info.versionCode;;
        if (currentVersion > lastVersion) {
              // First time launch


            prefs.edit().putInt(PreferencesActivity.KEY_HELP_VERSION_SHOWN, currentVersion).commit();
        }