【问题标题】:What is the proper method of implementing onPause, onResume, surfaceCreated and surfaceDestroyed when developing a custom camera on Android?在 Android 上开发自定义相机时,实现 onPause、onResume、surfaceCreated 和 surfaceDestroyed 的正确方法是什么?
【发布时间】:2025-12-06 23:10:01
【问题描述】:

我目前正在开发一个自定义相机应用程序,该应用程序使用 MediaRecorder 拍摄 5 秒的视频。我已经实现了一个从 5 开始倒计时的数字倒计时覆盖。

我的问题是我不是 100% 确定如何实现表面方法和暂停/恢复方法。如果我在录制过程中关闭我的应用,然后再次打开它,应用就会冻结、显示黑屏并最终崩溃。

是否应该同时使用 onPause 和 surfaceDestroyed? (同样的问题适用于 onResume 和 surfaceCreated)surfaceChanged 如何适应这个?

我猜我需要找到一种方法来在每次恢复时重新启动我的 CameraActivity。 (因为我不希望它在倒计时中途恢复)。

【问题讨论】:

    标签: java android camera mediarecorder


    【解决方案1】:

    您应该查看 Activity 生命周期 onPause 和 onResume 以创建和销毁相机。

    http://developer.android.com/training/basics/activity-lifecycle/pausing.html#Pause

    【讨论】:

      最近更新 更多