2012-05-14 5 views
0

Android C2DM을 사용하여 앱을 개발하고 있습니다. sqlite3 내 백 엔드입니다. 모든 것은 정상적으로 작동하지만 sqlite3과 관련된 성능 문제가 있습니다. 그래서 내 질문은 '어딘가에 한 번만 실행될 데이터베이스 코드를 배치 할 수 있습니다. 즉, dvm (dalvik vertiual machine)은 db에 관한 코드를 한 번만 실행해야합니다. 연속 실행 중에 db가 생성 되었기 때문에 dvm이 (db) 코드를 통과해서는 안됩니다.Sqlite 코드는 한 번만 실행해야합니다.

특히, 내 앱은 내 앱이있는 모든 휴대 전화에 msg를 전송합니다. 클라이언트 측의 앱이 msg를 수신하면, dvm은이 코드를 실행해서는 안됩니다 : SQLiteDatabase db;

//use tat ref to open or create a table 
    db = openOrCreateDatabase("/data/data/de.vogella.android.c2dm.simpleclient/app_database/file__0/0000000000000001.db", SQLiteDatabase.CREATE_IF_NECESSARY, null); 

    try 
    { 

     //initialsiging a query with all the table fields 
     final String CREATE_TABLE_CONTAIN = "CREATE TABLE IF NOT EXISTS tbl_Message4(" 
       + "id INTEGER PRIMARY KEY AUTOINCREMENT," 
       + "msg TEXT not null," 
       + "msg_time INTEGER not null," 
       + "msg_status INTEGER not null);"; 

     //execute the above query 
     db.execSQL(CREATE_TABLE_CONTAIN); 

msg가 나올 때마다이 코드가 실행됩니다. 그래서 나는 이것을 피하고 싶습니다. 나는 내 메시지를 전달한 것 같습니다. 어떤 도움을 주시면 감사하겠습니다.

감사합니다,

TheIlliterate

+0

내 대답이 도움이 되었습니까? 문제가 해결 되었다면이를 수락해야합니다 (체크 표시를 클릭하십시오). 그렇지 않은 경우 알려 주시면 문제를 해결할 수 있도록 노력하겠습니다. – Barak

답변

0

당신이 요구하는 것은 일반 (및 권장) 사용하는 경우입니다.

Android에는 여러 가지 클래스와 메소드가 있습니다.

기본적으로 DB를 관리하기위한 도우미 클래스를 만들면 데이터베이스 작성 및 업그레이드를 처리하기 위해 onCreate 및 onUpgrade 메서드를 재정의한다는 점에서 SQLiteOpenHelper를 확장하는 클래스가 있습니다. 그런 다음 헬퍼 클래스에서 DB와 관련된 모든 함수 (예 : 레코드 추가/삭제/업데이트)를 처리하는 다른 메서드 (도우미 클래스 내에 있지만 SQLiteOpenHelper 확장 클래스는 제외)를 만드는 것이 일반적입니다.

몇 가지 예제와 튜토리얼이 떠 다니고 있습니다. 좋은 것은 here입니다.

행운을 빕니다

+0

이봐 요, 그 튜토리얼을 통해 갔지만 어디에서 그 db 코드가 한 번 또는 새 메시지가 수신 될 때마다 실행됩니다 언급했다. – TheIlliterate

+0

자습서에서 "onCreate() 및 onUpgrade() 메서드를 재정의해야합니다. 데이터베이스가 없으면 프레임 워크에서 onCreate()가 호출됩니다." 마지막 비트 : ** 데이터베이스가 존재하지 않는 경우 **. 따라서 DB를 한 번만 만들 수 있습니다. – Barak

+0

안녕하세요, 제가 알아 들었습니다. 하지만 내 질문은; dvm은 msg가 수신 될 때마다가 아니라 한 번만 db 코드를 통과해야합니다. – TheIlliterate

관련 문제