我的Android应用程序经常记录错误,抱怨说我未能发布我的语句,游标和数据库。实际上,我在使用它们的代码的最后{}块中明确地释放了所有游标,并且在包含它们的类的finalize()方法中关闭了我的数据库。Android:我真的需要担心关闭SQLite数据库实例吗?
我的应用程序的结构使我很难在数据库对象(除了终结器)上显式调用close()方法,因为例如,使用数据库的类不是Activity类但可能是一个由Activity间接使用的类。所以这个类本身并不知道它最终所附的活动何时被销毁。
我需要关注这个吗?我是否通过不明确地关闭数据库实例来泄漏某些资源?有没有什么危险会导致某些东西无法写入文件? Android上的SQLite实现是否写入缓存?我可以关闭它或强制同步吗?
什么是Android VM的终结者策略 - 它们是否能够最终运行?
弗兰克
是的,我通常会清理东西,但在这种情况下,我将数据库功能添加到已存在的东西。对于在非gc环境中保证的析构函数调用,有些话要说。清理的好地方。 – 2011-04-21 20:26:35