android - 应用崩溃时如何释放Android资源

标签 android crash finalize audiorecord

我正在开发一个 Android AudioRecord 应用程序。如果我没有在脚本末尾调用 AudioRecord 对象上的 release() 方法,则在重新启动手机之前它不会正确运行。

在处理这个项目时,这会成为一个主要麻烦,因为如果应用程序崩溃(有时会在测试时发生,并且存在意外的缓冲区溢出等),那么我每次都必须重新启动手机。

我有方法在 AudioListener 类的 finalize() 方法中释放缓冲区,我还将它们称为主 Activity 的 onStop()

当应用程序卡住或崩溃时,这些似乎都不起作用。有没有办法将释放操作附加到错误处理程序或某种通用方法来确保应用程序即使在崩溃后也能执行一些代码以正确释放资源。

感谢您的帮助。

最佳答案

创建自己的Application类(需要在AndroidManifest.xml中声明),然后覆盖方法:

Application.onLowMemory();
Application.onTerminate();

有关更多信息,请参阅 Android 手册中的 Application

关于android - 应用崩溃时如何释放Android资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4524603/

相关文章:

java - Java 有析构函数吗?

android - MapBox 设置样式回调有时不起作用,mapbox map 变灰

android - 将 ImageView 放置在居中按钮的左侧

C While 循环问题

dictionary - iOS 6 MKMapView 内存泄漏并在一段时间后应用程序崩溃

google-chrome - 在 tmux 下运行 selenium 和 capybara 时 Chrome 页面崩溃

c# - 为什么传统的 Dispose 模式会抑制 finalize?

java - Cipher.do最终输出大小

android - ffmpeg - 在 android 中使用过滤器

android - 漏洞 : Splash and Icon generator not working (Ionic and Cordova)