2017-01-09 5 views
0

나는 안드로이드 프로그래밍에 익숙하지 않고 sqlite 데이터베이스를 사용하기 쉽다. 내 응용 프로그램에서 나는 onpause 및 ondestroy에서 데이터베이스를 종료합니다.일시 중지 후 데이터베이스 다시 열기

그러나 앱을 사용할 때 데이터베이스/앱을 잠시 닫은 후에 다시 열려고하지만 '이미 닫힌 데이터베이스를 열 수 없습니다'라는 오류 메시지가 계속 표시됩니까?

도와주세요. 다음은 java 파일의 발췌 부분입니다.

public class Apple extends Activity { 

DbA myDb; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.apple_layout); 
    openDB(); 
    } 

    private void openDB() { 
myDb= new DbA(this); 
myDb.open(); 
} 

    @Override 
    protected void onDestroy() { 
super.onDestroy(); 
myDb.close(); 
    } 


    @Override 
    protected void onResume() { 
super.onResume(); 
myDb.open(); 
} 

    @Override 
protected void onPause() { 
super.onPause();   
myDb.close(); 
    } 

내가 뭘 잘못하고 있는지 말해주십시오.

+0

우편 번호를 가질 수 있습니다. – Okas

+0

다시 시작하거나 일시 중지 할 때 데이터베이스를 열 필요가 없습니다. 데이터베이스를 사용하기 전후에 열고 닫으십시오. –

답변

0

저의 견해로는 활동의 전체 수명주기에 열려있는 데이터베이스 연결을 유지할 필요가 없습니다.

나는 보통 작업을 수행하고 작업이 끝나면 닫을 데이터베이스를 얻을 수 있습니다.

예를 들어, 레코드를 추가, 당신은 당신이 너무하시기 바랍니다 사용하고있는 "DBA"클래스 다음의 방법을

public void addItem(Item item) { 
    if (item == null) { 
     return; 
    } 

    // get writable database and begin transaction 
    final SQLiteDatabase database = dbHelper.getWritableDatabase(); 
    database.beginTransaction(); 

    // INSERT ITEM IN DATABASE 

    // End transaction and close connection 
    database.setTransactionSuccessful(); 
    database.endTransaction(); 
    database.close(); 
} 
관련 문제