У меня есть пользовательский ContentProvider с настраиваемым элементом SQLiteDatabaseHelper. При попытке вставки в мою базу данных внутри моей вставки я создаю свой экземпляр DatabaseHelper, а затем пытаюсь вызвать getWritableDatabase() для этого экземпляра, чтобы получить объект SQLiteDatabase, но я получаю принудительное закрытие при вызове getWritableDatabase().
Моя деятельность:
public class UserForm extends Activity {
public void onSubmitClick(View v){
userDatabase db = new userDatabase();
db.insert(userDatabase.CONTENT_URI, null);
...}
...}
Мой вспомогательный код:
public static final class MainDatabaseHelper extends SQLiteOpenHelper{
public MainDatabaseHelper(Context context) {
super(context, DBNAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(SQL_CREATE_MAIN);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS Users");
}
}
Моя вставка:
public class userDatabase extends ContentProvider {
public Uri insert(Uri uri, ContentValues values) {
MainDatabaseHelper dbHelper = new MainDatabaseHelper(getContext());
SQLiteDatabase db = dbHelper.getWritableDatabase();
...}
...}
Я получаю силу близко к этой последней линии.
Я знаю, что dbHelper не равен нулю. Я знаю, что конструктор dbHelper запущен. НО dbHelper onCreate никогда не запускался.
Я предполагаю, что проблема в том, что помощник создается, но никогда не создается, что может быть не так?
Примечание. Я пробовал тот же процесс без поставщика контента, помощника внутри моей активности, и все работало нормально. Но это не так, когда я делаю это внутри поставщика контента...?
Что может быть не так???