2012-03-07 1 views
0

보통 Activity을 처리 할 때 onCreate에 데이터베이스를 열고 onStop으로 닫습니다. 탭 작업을 처리 할 때 onResume에 다른 항목을 추가하고 에 다른 항목을 추가합니다.데이터베이스 닫거나 다시 열기위한 접근 방법

그래서 코드는이 개폐 너무 많은이

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

    mDB.open(); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 

    mDB.open(); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 

    mDB.close(); 
} 

@Override 
protected void onStop() { 
    super.onStop(); 

    mDB.close(); 
} 

처럼 보인다?

답변

2

저는 그렇게 생각하지 않습니다. 응용 프로그램의 수명주기를 관리하는 중일뿐입니다. 이는 매우 좋은 일입니다.

+0

에 동의하면 db 연결이 필요하지 않을 때 항상 닫아야합니다. – Andreas

1

내가 생각하기에 데이터베이스를 닫은 후에 코드 블록을 열면 더 좋은 방법이라고 생각합니다. 활동의 라이프 사이클에서 원하지 않는 버그가있는 경우 데이터베이스가 닫히도록 보장 할 수 있기 때문입니다.

+0

자기 자신과 컴파일러가 똑같다고 생각하는 것 같습니다. 나는 onStop에서 DB를 닫음에도 불구하고 커서가 열려 있다고 경고합니다. 이 주제에 대해 다른 Q를 게시 할 것입니다. – sandalone

관련 문제