初始化SQLite数据库

时间:2018-02-05 08:19:25

标签: android database sqlite oncreate

调用db.getWritableDatabase()或db.getReadableDatabase()时,将调用DatabaseHelper类的onCreate方法。因此,无论何时第一次使用dbhelper,都会在那时调用onCreate 我希望无论何时第一次启动应用程序而不是第一次使用dbhelper,都会调用我的数据库。

2 个答案:

答案 0 :(得分:1)

在应用程序类中初始化您的Db类....

public class AppController extends Application {

    private static AppController mInstance;
    private DatabaseManager databaseManager;

    @Override
    public void onCreate() {
        super.onCreate();
        mInstance = this;

        databaseManager = new DataBaseManger(mInstance);


    }

    public static synchronized AppController getInstance() {
        return mInstance;
    }

}

在Android Manifest中声明应用程序类...

<application
        android:name=".app.AppController"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

     ---------------------------------------
     ----------------------------------------
   -------------------------------------------

   </application>

答案 1 :(得分:0)

  

我希望无论何时第一次启动应用程序而不是第一次使用dbhelper,都会调用我的数据库。

创建自定义应用程序类并使用应用程序的onCreate()方法初始化数据库。这将确保在任何Activity启动之前初始化您的数据库。因为Application类在任何Activity启动之前运行。

public class MyApplication extends Application {
  public void onCreate() {
    super.onCreate();
    // Initialize your Database here 

  }
}

AndroidManifest.xml

中定义应用程序类
    <application
    android:name="com.example.MyApplication"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/BaseTheme">
    ...................
    ...................
     </application>