java - 代号一将标签文本视为iOS中的字符串文字?
问题描述
我构建的应用程序是一个日记应用程序,用户可以返回并从日历页面查看他们以前的条目(附截图)。仅在 iPhone 上(Android 很好),单击大约 20 天后,应用程序崩溃。它不会通过电子邮件发送崩溃消息,所以我很确定它达到了内存限制。
在测试中,我保持所有逻辑相同,只删除了生成跨度标签以显示日志文本的部分。我仍在从数据库中提取文本,只是没有创建标签并显示它。它停止了崩溃。
所以我的问题是,我能做些什么来确保进入标签的文本不会存储在内存中,以便垃圾收集器可以删除它?
解决方案
您确定要从“正确的线程”关闭数据库吗?iOS 对用于数据库访问的线程非常敏感。还要确保先关闭游标,然后再关闭数据库。
我建议通过在游标方法中放置一个断点close()
并查看是谁调用它来在模拟器上重现它。如果我们的终结器方法到达光标,那么您会遇到一个错误,即在您可以在模拟器中重现的某个地方留下一个打开的光标。此时,您可以记录每个游标打开,然后查看哪个游标没有被清理。确保所有光标开口都使用 finally 块进行防御性编码。
推荐阅读
- reactjs - 无法在 VS Code 中调试 React Typescript
- javascript - JS中的动态网格
- unit-testing - 如何模拟 JoinRow 进行单元测试
- ios - 了解 Jetsam 日志“proc-thrashing”
- c++ - 如何在 macos 上的 C++ 项目中使用 DCMTK
- python - 如何动态更改 selenium webdriver 的代理 IP?
- primefaces - 如何为 primefaces 扩展计时器设置起始值
- python - 在 Python 中使用 GLM 测量约束回归的拟合优度
- java - Eclipse 显示端口在使用 tomcat v9 运行 Web 应用程序时正在使用,即使我更改了它
- angular - Electron + Angular (7) OAuth 2.0 重定向