2017-03-14 13 views
1

일부 이름과 URL 목록보기가 있습니다. 내 앱이 시작된 후 로컬 데이터베이스에 레코드가 있는지 확인합니다. 이 경우에 따라서, 우선 그냥 데이터가 삽입되지 않은 경우 나의 오래된 기록은 다음 목록보기 데이터 테이블 열을 작성하고 취소 ...이 내가하고 있어요 방법입니다 내 코드의설탕 ORM 데이터베이스 테이블 레코드 삭제

List<LocalProduct> allAuthors = LocalProduct.listAll(LocalProduct.class); 
if (allAuthors == null) { 
    for (int allList=0;allList<adapter.getCount();allList++){ 
     Product my = adapter.getItem(allList); 
     String offline_name = my.name.toString().trim(); 
     String offline_url = my.image_url.toString().trim(); 
     LocalProduct book = new LocalProduct(offline_name, offline_url); 
     book.save(); 
     } 
    }else { 

     /* 
     SugarContext.terminate(); 
     SchemaGenerator schemaGenerator = new SchemaGenerator(getContext()); 
     schemaGenerator.deleteTables(new SugarDb(getContext()).getDB()); 
     SugarContext.init(getContext()); 
     schemaGenerator.createDatabase(new SugarDb(getContext()).getDB()); 
     */ 

    for (int allList=0;allList<adapter.getCount();allList++){ 
     Product my = adapter.getItem(allList); 
     String offline_name = my.name.toString().trim(); 
     String offline_url = my.image_url.toString().trim(); 
     LocalProduct book = new LocalProduct(offline_name, offline_url); 
     book.save(); 
     } 
    } 

댓글 영역 테이블을 삭제하고 다시 작성하면 매번 지연이 발생합니다 ... 어떻게하면 레코드를 삭제할 수 있습니까?

+0

왜 당신은 별도의 스레드와 배경에하지 않는다? –

+0

지연이 사라질 것입니까? 어떻게? –

+0

아니요, UI에서 작업하는 것을 차단하지 않습니다. –

답변

2

:

LocalProduct.deleteAll(LocalProduct.class); 

자동 증가 카운터를 재설정 :

LocalProduct.executeQuery("DELETE FROM SQLITE_SEQUENCE WHERE NAME = '" + tableName + "'"); 
0

왜 테이블을 완전히 제거하고 다시 만드는지. Suger orm이 대량 삭제를 지원하면 백그라운드 스레드와 함께 사용하십시오. 재설정 레코드

확인 here