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