2012-05-30 21 views
-1

在我的程序中,我該如何設置我的SQLite數據庫第一次?什麼是程序結構來做到這一點?如何首次設置android應用程序?

只有我能想到的辦法就是保持一個第一次布爾:

如果(isFirstInstall)設置();

這似乎很不專業。有沒有onFirstInstall()調用這些設置完成?

回答

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

你可以一個布爾值存儲到SharedPreferences,並檢查值(第一次與否) 應用程序啓動時。

檢查sharedPreferences

希望的文檔,這thread幫助你

0

您可以使用此代碼嘗試。

呼叫checkFirstLaunch();來自onCreate()的

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  
} 
0

而是找出羯羊這是你第一次啓動時如果缺少,你可以檢查db是有與否,創造它。

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(); 
} 
相關問題