1

콘텐츠 리졸버를 통해 데이터베이스에 데이터를 삽입하려고합니다. 데이터가 삽입되지만 각 insert()에는 두 개의 항목이 있습니다. 내 코드를 디버깅하지만 중복 항목의 원인을 얻을 수 없습니다. 내가 잘못 곳에 나를 지적하는ContentResolver가 중복 데이터를 삽입하고 있습니다.

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); 

사람이 안내 수 : 컨텐츠 해결에

@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); 
    } 

코드 : 여기 내 코드의 조각은 콘텐츠 공급자의

삽입()입니까?

답변

0

메가 당신은 "myResolver.insert(browserProviderUri, cv);"이라고 두 번 호출하기 때문에 데이터를 두 번 삽입합니다.

System.out.println 문에서 myResolver.insert(browserProviderUri, cv)을 제거하면됩니다.

+0

그런 어리석은 실수. :). 고마워. – megha

+0

환영합니다. 도움이된다면 제 대답을 받아주세요. 감사. –

관련 문제