使用ContentProvider插入新数据时,应用程序崩溃

时间:2017-07-25 13:22:39

标签: android android-contentresolver

这段代码:

insert的{​​{1}}:

ContentProvider

这是我插入数据的地方:

public Uri insert(Uri uri, ContentValues contentValues) {

    final int match = sUriMatcher.match(uri);
    switch (match) {
        case DOG:
            insertDog(uri, contentValues);
        default:
            throw new IllegalArgumentException("Insertion is not supported for " + uri);
    }
}

private Uri insertDog(Uri uri, ContentValues contentValues) {

    SQLiteDatabase db = mDbHelper.getWritableDatabase();
    long id = db.insert(DogEntry.TABLE_NAME, null, contentValues);
    if (id == -1) {
        Log.e(LOG_TAG, "Failed to insert row for " + uri);
        return null;
    }
    return ContentUris.withAppendedId(uri, id);
}

注意:所有常量都在合同类中定义。

1 个答案:

答案 0 :(得分:4)

你忘了回报:

...
case DOG:
     return insertDog(uri, contentValues);

说明:切换完成所有情况并在结束时默认。我们应该在case语句中调用break或return。