我不是100%,因为我的Android知识有限。
自定义应用程序对象 您可以注册您的自定义应用程序对象。见here。这个对象可以生命周期回调,当您的应用程序启动或终止时调用。它在整个活动中保持活力。
因此,创建自己的应用延伸android.app.Application:
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;
}
}
然后注册与该对象:
<application android:icon="@drawable/icon"
android:label="@string/app_name"
android:name="my.packages.MyApplication">
那么你都可以随时在你的活动实例附:
MyApplication app = (MyApplication) getApplication();
ObjectContainer container = app.database();
Static-Singleton
另一种解决方案可以是经典的“静态”单例。只要您的应用程序正在运行,就会加载同一个类的实例。所以它会保持容器活着。
谢谢你的回应,我尝试使用张贴的方式,并从小教程,但我最终试图使用单身人士,我有另一个帖子,因为我也遇到了麻烦! :( – user1799107