android - 如何修改此 SQLiteOpenHelper 插入操作,使其成为 ContentResolver 操作(带事务)

标签 android

我有这个 SQLiteOpenHelper 操作,我需要它成为一个 ContentResolver 操作,这样即使应用程序被销毁我也可以这样做

    sqliteOpenHelper.database.beginTransaction();
    try {

            ContentValues values = new ContentValues();
            values.put("userId", userId);
            values.put("userName", userName);
            values.put("userEmail", userEmail);

            sqliteOpenHelper.database.insert("users", null, values);
            sqliteOpenHelper.database.setTransactionSuccessful();

        } catch (Exception ex) {
            ex.printStackTrace();

        } finally {
            sqliteOpenHelper.database.endTransaction();
        }

通常我知道如何使用 ContentResolver 查询数据库,如下所示:

                Uri contentUri = Uri.withAppendedPath(ContentProviderDB.CONTENT_URI, "users");
                String selection = "user_id = " + String.valueOf(userId);
                cursor = context.getContentResolver().query(contentUri, null, selection, null, null);

但是在上面的INSERT中有事务,所以我不知道如何处理。

最佳答案

使用contentResolver.insert (uri, contentValues) .


代替:

sqliteOpenHelper.database.beginTransaction();
try {

    ContentValues values = new ContentValues();
    values.put("userId", userId);
    values.put("userName", userName);
    values.put("userEmail", userEmail);

    sqliteOpenHelper.database.insert("users", null, values);
    sqliteOpenHelper.database.setTransactionSuccessful();

} catch (Exception ex) {
    ex.printStackTrace();

} finally {
    sqliteOpenHelper.database.endTransaction();
}

你需要写:

try {
    ContentValues values = new ContentValues();
    values.put("userId", userId);
    values.put("userName", userName);
    values.put("userEmail", userEmail);
    Uri uri = mContext.getContentResolver().insert(contentUri, values);

} catch (Exception ex) {
    ex.printStackTrace();

}

关于android - 如何修改此 SQLiteOpenHelper 插入操作,使其成为 ContentResolver 操作(带事务),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25601158/

相关文章:

android - 从 Android 中的中心点缩放位图以实现放大效果

android - Google OAuth Android 的重定向 url

android - TextInputLayout 和 AutoCompleteTextView

android - 如何检查 Android < 5.0 是否启用了节电模式?

android - 使用 Delphi XE5 for Android 创建 WifiConfiguration

android - 运行 “cordova build android” - AAPT : error: resource android:attr/fontVariationSettings not found.\n android:attr/ttcIndex 未找到

android - 自定义安卓切换轨道 'animation'

android - 删除 EditText 中的附加下划线

android - 为什么我的服务停止了?

android - Instagram “You Cannot Like this Media” 400 状态码