안드로이드에 대한 지식이 제한적이므로이 방법이 작동하는 경우 100 %가 아닙니다.
사용자 지정 응용 프로그램 개체 사용자 지정 응용 프로그램 개체를 등록 할 수 있습니다. here을 참조하십시오. 이 객체는 앱이 시작되거나 종료 될 때 호출되는 라이프 사이클 콜백을 수행 할 수 있습니다. 그것은 활동 전반에 걸쳐 살아 있습니다.
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;
}
}
그런 다음에 그 객체 등록 :
그래서, android.app.Application 확장 자신의 응용 프로그램 만드는 그런
<application android:icon="@drawable/icon"
android:label="@string/app_name"
android:name="my.packages.MyApplication">
을 할 수 있습니다 당신의 활동에 언제든지 인스턴스 로 :
MyApplication app = (MyApplication) getApplication();
ObjectContainer container = app.database();
정적 - 싱글
다른 해결책은 고전적인 '정적'싱글 톤이 될 수 있습니다. 응용 프로그램이 실행되는 동안 동일한 클래스 인스턴스가로드됩니다. 그래서 그것은 컨테이너를 살아있게 할 것입니다.
응답 해 주셔서 감사합니다. 게시 된 방식과 작은 자습서에서 사용하려고 시도했지만 싱글 톤을 사용하려고했으나 결국 그 문제가 발생하여 다른 게시물을 가지고 있습니다. :( – user1799107