Я работаю в приложении Android AudioRecord. Если я не вызову метод release()
для объекта AudioRecord в конце сценария, он не будет работать правильно, пока я не перезапущу телефон.
Это становится большой проблемой при работе над этим проектом, потому что, если приложение когда-либо аварийно завершает работу (что иногда случается во время тестирования и возникает непредвиденное переполнение буфера и т. Д.), Тогда мне приходится каждый раз перезагружать телефон.
У меня есть метод для освобождения буферов внутри метода finalize()
моего класса AudioListener, и я также называю их onStop()
основной операции.
Похоже, что ни один из них не работает, когда приложение зависает или вылетает. Есть ли способ прикрепить действие release к обработчику ошибок или какой-то общий способ гарантировать, что приложение выполнит некоторый код для правильного освобождения ресурсов даже после сбоя.
Спасибо за любую помощь.