Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 初始化SQLite数据库_Android_Database_Sqlite_Oncreate - Fatal编程技术网

Android 初始化SQLite数据库

Android 初始化SQLite数据库,android,database,sqlite,oncreate,Android,Database,Sqlite,Oncreate,调用db.getWritableDatabase或db.getReadableDatabase时,将调用DatabaseHelper类的onCreate方法。因此,无论何时第一次使用dbhelper,都将在那时调用onCreate。 我希望在应用程序第一次启动时调用我的数据库,而不是第一次使用dbhelper 我希望在应用程序第一次启动时调用我的数据库,而不是第一次使用dbhelper 创建自定义应用程序类并在应用程序的onCreate方法中初始化数据库。这将确保在启动任何活动之前初始化数据库。

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

我希望在应用程序第一次启动时调用我的数据库,而不是第一次使用dbhelper

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

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

  }
}
在AndroidManifest.xml中定义应用程序类


在应用程序类中初始化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清单中声明应用程序类

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

是什么阻止您在应用程序启动时调用getWritableDatabase?是否应添加此代码?DatabaseHandler db=new DatabaseHandlergetApplicationContext;db.getWritableDatabase;只需调用DatabaseHandler db=newDatabaseHandlerGetApplicationContext;但这不会调用dbhelperpublic DatabaseHandlerContext的oncreate方法{supercontext,DATABASE_NAME,null,DATABASE_VERSION;this.context=context;}public DatabaseHandlerContext{supercontext,DATABASE_NAME,null,DATABASE_VERSION;this.context=context;}这不会调用oncreate方法
<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>