우리는 db4o를 사용하여 다양한 액티비티와 서비스에 다양한 오브젝트를 저장하는 안드로이드 애플리케이션을 개발하고 있습니다. 우리는 db4o로 작업 할 때 최선의 방법을 찾고 있으며 특히 db를 열고 닫을 시점을 찾고 있습니다. 우리는 각 단일 저장소 작업 후에 db를 닫고 모든 검색 작업에서 다시 열기를 원하지 않습니다. 이는 프로세서의 열기 및 닫기가 어렵 기 때문에 응용 프로그램의 속도에 영향을 줄 수 있기 때문입니다. 우리는 앱 라이프 사이클 전반에 걸쳐 사용할 수있는 db4o의 글로벌 상태를 유지하는 것을 선호합니다.안드로이드 애플리케이션의 라이프 사이클 전반에 걸쳐 글로벌 db4o를 유지하는 방법
는 는내가 여기에 읽고 있던 사용자 정의 응용 프로그램 개체에서 데이터베이스를 유지하고 우리가 필요로 할 때 인스턴스를 얻을 수있는 좋은 생각입니다 global db4o database for multiple activities 그러나
public class MyApplication extends Application {
private volatile ObjectContainer container;
@Override
public void onCreate() {
super.onCreate();
// the application object is a regular Android context,
// So you can get the required info`
this.container = Db4oEmbedded.openFile(...)
}
@Override
public void onTerminate() {
super.onTerminate();
// if something was not finished, better rollback
container.rollback();
container.close();
}
public ObjectContainer database(){
return container;
}
}
, 나는 깨달았다 그 마지막 OnTerminate () 응용 프로그램의 메서드는 에뮬레이션 목적으로 만 존재하며 실제 전화에서는 실행되지 않습니다. 그리고 내 질문에, onTerminate() 호출하지 않는 경우 어디에 우리가 db 개체를 닫아야하고 개폐에 최고의 전략은 무엇입니까?