相反,数据库管理器类或 Shared 的静态实例的声明最有可能使您免于不必要的泄漏,好吧,如果您谈论什么是静态的话。一般来说,还取决于用途。我什至无法想象使用静态是如何实现的,但是使用数据库,无论是在写作时还是在阅读时,你都可以真正做到这一点。好吧,比如说你把光标放在不关闭它,然后在这种情况下你会得到这样的东西。Object Sqlite.* was leaked! Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.因此,即使这样争论,你也可以像文档中所说的那样SQLite will never leak memory. This is true even in the face of memory allocation failures or other system errors.。总之,没有记忆Sqlite 中的泄漏,即使你自己搞砸了。但有时你会发现这样的
Leak found
Caused by: java.lang.IllegalStateException: SQLiteDatabase created and never closed
有很多方法可以使用 Sqlite 数据库,但是有一些报告说,对于 ANdroid,最好的方法是在启动时打开(在 Application 类中)并在退出时关闭。否则,无论你如何使用从不同上下文到数据库的连接,然后 catch database is locked,作为一个单例,但你可以捕获它,attempt to re-open an already-closed object: SQLiteDatabase所以我建议你不要过早地进行数据库优化,尤其是在小型应用程序中。static 本身对项目结构来说很糟糕,最好还是不要使用它。
相反,数据库管理器类或 Shared 的静态实例的声明最有可能使您免于不必要的泄漏,好吧,如果您谈论什么是静态的话。一般来说,还取决于用途。我什至无法想象使用静态是如何实现的,但是使用数据库,无论是在写作时还是在阅读时,你都可以真正做到这一点。好吧,比如说你把光标放在不关闭它,然后在这种情况下你会得到这样的东西。
Object Sqlite.* was leaked! Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.因此,即使这样争论,你也可以像文档中所说的那样SQLite will never leak memory. This is true even in the face of memory allocation failures or other system errors.。总之,没有记忆Sqlite 中的泄漏,即使你自己搞砸了。但有时你会发现这样的有很多方法可以使用 Sqlite 数据库,但是有一些报告说,对于 ANdroid,最好的方法是在启动时打开(在 Application 类中)并在退出时关闭。否则,无论你如何使用从不同上下文到数据库的连接,然后 catch
database is locked,作为一个单例,但你可以捕获它,attempt to re-open an already-closed object: SQLiteDatabase所以我建议你不要过早地进行数据库优化,尤其是在小型应用程序中。static 本身对项目结构来说很糟糕,最好还是不要使用它。