java - 屏幕锁定后相机预览卡住

标签 java android android-activity camera

我编写的自定义相机应用程序在屏幕锁定后停止提供预览(通过按下锁定按钮或等待几分钟)。我没有得到异常,这使得很难找到问题。

Android 屏幕锁定(如果这是正确的术语)是否暂停/停止/...我的应用程序( Activity )?

如果是这种情况,原因可能是我的 onPause/onResume 方法吗?还是更可能是另一个原因?

提前致谢

最佳答案

我遇到了同样的问题并使用以下步骤解决了它:

  1. 我创建了我的相机预览并将其添加到父 Activity 的 onResume() 中的容器 FrameLayout 中。比如:

    public void onResume{
        super.onResume();
        mCamera = Camera.open();
        if(null != mCamera){
            mCamera.setDisplayOrientation(90);
            mPreview = new CameraOverlay(getActivity(), mCamera);
            frLyParent.addView(mPreview);
        }
    }
    
  2. 我删除了 onPause() 中的 View 。这修复了卡住。

    public void onPause(){
        super.onPause();
        if(null != mCamera){
            mCamera.release();
            mCamera = null;
        }
        frLyParent.removeView(mPreview);
        mPreview = null;
    }
    

其中CameraOverlay() 是扩展SurfaceView 并实现SurfaceHolder.Callback 的类。如果您需要该实现,请告诉我。

关于java - 屏幕锁定后相机预览卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16396297/

相关文章:

android - Intent 始终为 null onStartCommand

Android - 使用处理程序?

android - "Failure Delivering Result "- onActivityForResult

java - String.trim() 对于相同引用的对象返回 false

java - 一些网站图片没有显示在android的webview中

java - 如何使用 java 在 libvirt 中使用 Activity 域填充组合框

android - 如何基于Android中该 View 的坐标来知道一个 View 何时在另一 View 之上

android - Android webView.loadUrl 中的 UTF8 问题

java - Hadoop map reduce 从 csv 格式的 csv 文件中提取特定列

java - 如何设置开关右侧的文本位置(如复选框)