如何首次设置Android应用程序?

时间:2012-05-30 05:03:50

标签: android sqlite installation

在我的程序中,如何首次设置SQLite DB?这样做的程序结构是什么?

我能想到的唯一方法就是保持第一次布尔值:

if(isFirstInstall)setup();

这似乎非常不专业。是否有onFirstInstall()调用这些设置完成?

4 个答案:

答案 0 :(得分:2)

您可以将一个布尔值存储到SharedPreferences中,并检查该值(第一次与否) 当应用程序启动时。

查看sharedPreferences

的文档

希望thread帮助你

答案 1 :(得分:2)

试试这个

private SharedPreferences mPreferences;

    boolean firstTime = mPreferences.getBoolean("firstTime", true);
    if (firstTime) { 
        SharedPreferences.Editor editor = mPreferences.edit();
        editor.putBoolean("firstTime", false);
        editor.commit();
        showMiddleActivity();
    }

答案 2 :(得分:0)

您可以尝试使用此代码。

从onCreate()调用 checkFirstLaunch();

private boolean checkFirstLaunch() {
        try {
            PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), 0);
            //int currentVersion = info.versionCode;
            SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
            int lastVersion = prefs.getInt(PreferencesActivity.KEY_HELP_VERSION_SHOWN, 0);
            if (lastVersion == 0) {
                isFirstLaunch = true;
            } else {
                isFirstLaunch = false;
            }

        } catch (PackageManager.NameNotFoundException e) {
            Log.w(TAG, e);
        }
        return false;
    }

你得到布尔结果。

if (isFirstLaunch) {
    //code    
}

答案 3 :(得分:0)

而不是弄清楚这是否是你第一次启动时,你可以检查数据库是否存在,如果它丢失则创建数据库。

public void createDataBase() throws IOException {
    if ( checkIfDataBaseExist() ) {
        // db exists, do nothing
    } else {
        // By calling this method and empty database will be created into
        // the default system path of your application
        this.getReadableDatabase();
        try {
            // Do you db copying here
        } catch (IOException e) {
            throw new Error("Error copying database");
        }
    }
}

private boolean checkIfDataBaseExist() {
    File dbFile = new File(DB_PATH + DB_NAME);
    return dbFile.exists();
}