ContentResolver正在插入重复数据

时间:2014-10-13 05:45:12

标签: android sqlite android-contentprovider android-contentresolver

我正在尝试通过内容解析器将数据插入数据库。插入数据但是对于每个insert(),有两个条目。我调试我的代码但无法获得重复输入的原因。 以下是我的代码片段

在内容提供商中插入()

@Override
    public Uri insert(Uri uri, ContentValues values) {
        int uriType = uriMatch.match(uri);
        SQLiteDatabase mDb = dBHelper.getWritableDatabase();

        long id = 0;
        switch(uriType){
        case Allowed_url:
            id = mDb.insert(DatabaseHandler.Names, null, values);
            break;
        default:
            throw new IllegalArgumentException("unknown uri" + uri);
        }
        getContext().getContentResolver().notifyChange(uri, null);
        return Uri.parse(Names_TABLE_PATH + "/" + id);
    }

内容解析器中的代码:

    ContentResolver myResolver = mActivity.getContentResolver();

                                Uri browserProviderUri = Uri.parse("content://com.eaft.parentalcontrol." +
                                        "AllowedUrlProvider/" +
                                        "DatabaseHandler/NAMES");

                                ContentValues cv = new ContentValues();

                                System.out.println("History_AL.get(0).getUrl() is : " + 
                                        LightningView.History_AL.get(0).getUrl());
                                cv.put("NAME", LightningView.History_AL.get(0).getName());
                                cv.put("InTime", LightningView.History_AL.get(0).getInTime());
                                cv.put("OutTime", LightningView.History_AL.get(0).getOutTime());
                                myResolver.insert(browserProviderUri, cv);
                                System.out.println("myResolver.insert(browserProviderUri, cv) "  +
                                        myResolver.insert(browserProviderUri, cv));
LightningView.History_AL.remove(0);

任何人都可以指导我指出我错在哪里吗?

1 个答案:

答案 0 :(得分:0)

你打电话给#34; myResolver.insert(browserProviderUri, cv);"这是两次插入数据两次的原因。

现在只需从myResolver.insert(browserProviderUri, cv)语句中删除System.out.println即可。