main 액티비티가 있고 child1, child2 액티비티가 있다고 가정할때

각각의 액티비티에서는 모두 DB를 사용해야만 합니다.

 

제가 쓰는 방식은 DB를 싱글턴으로 받아오게 처리한다음

각 액티비티의 onCreate() 에서 open 을 해주고, onDestroy() 에서 close를 해줍니다.

 

DB는 아래와 같이 한번만 open, close 를 하게 처리해놓았습니다.

 

int nCount = 0;

 

DB.open() {

    nCount++;

    if(nCount  > 1) return;

 

    실제DB의 Open 작업 수행

}

 

DB.close() {

nCount--;

if(nCount > 0) return;

실제DB의 Close 작업 수행

}

 

그런데, 이럴 경우 아주 극소수로  실제 DB가 open 되지 않아 에러가 발생하는 경우가 있습니다.

마켓의 에러리포트에 리포트되었고 저는 한번도 보지 못한 경우라....

BG상태에서 시스템에 의해 종료되었다가 다시 시작하는 경우일때로 추측이 되나,

로직상으로 문제가 나오는 경우를 찾지 못하고 있는 상황이네요.. 

 

여러분들은 여러 액티비티에서 DB를 사용해야 할때 어떤 방식으로 처리하시는지요?

(참고로 매번 사용할때마다 open, close를 하는 방식은 지양합니다. ^^;;)