SurfaceView预览界面写在XML文件中一般正常流程执行surfaceView,surfaceCreated可以正常调用;
但是下面两种方法surfaceCreated不会被调用,因为工作中遇到过所以记录一下。

方法一,使用handler延时加载
mHandler.postDelayed(new Thread() {public void run() {surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
},10);
方法二,点击按钮加载
public void onClick(View view){surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}

后面尝试发现使用动态加载SurfaceView可以解决这个问题,就是new一个SurfaceView对象,然后addView(mSurfaceView)。
或者可以布局里面定义两个SurfaceView先隐藏一个,需要预览的时候显示隐藏那一个。

具体原因的看见网上有人说是因为SurfaceView写在xml文件中,界面显示以后其实已经创建了,但是这时候没有添加生命周期的回调,所以后来添加了,这个接口也不会调用了。

要是有别的看法可以评论区告诉我

关于SurfaceView创建时,surfaceCreated调用的问题相关推荐

  1. 【Linux 内核】进程管理 ( 进程状态 | 进程创建 | 进程终止 | 调用 exit 系统调用函数主动退出 | main 函数返回自动退出 | kill 杀死进程 | 执行异常退出 )

    文章目录 一.进程状态 二.进程创建 三.进程终止 ( 调用 exit 系统调用函数主动退出 | main 函数返回自动退出 | kill 杀死进程 | 执行异常退出 ) 一.进程状态 Linux 进 ...

  2. 百度UNIT 机器人多轮对话技能创建以及API调用

    百度UNIT 机器人多轮对话技能创建以及API调用 基于百度UNIT2.0 版本,实现简单的多轮人机对话功能 创建机器人必备条件 确定有哪些技能 例如:查询天气.订票.讲故事等,以畅越冰激凌套餐营销话 ...

  3. 【Unity3D修改Text创建时的默认字体】

    Unity3D修改Text创建时的默认字体 首先定位Text创建时的字体加载逻辑 我使用的是Unity2019.3.2+win10系统 定位到Text的脚本在 Unity\Editor\Data\Re ...

  4. 第15章_存储过程与函数(创建存储过程、调用存储过程、存储函数的使用、存储过程和函数的查看、修改、删除)

    第15章_存储过程与函数 第15章_存储过程与函数 1. 存储过程概述 1.1 理解 1.2 分类 2. 创建存储过程 2.1 语法分析 2.2 代码举例 3. 调用存储过程 3.1 调用格式 3.2 ...

  5. Java SE7新特性之泛型实例创建时的类型推断

    Java SE7新特性之泛型实例创建时的类型推断 标签: JDK7泛型 2014-01-04 15:34 6015人阅读 评论(0) 收藏 举报  分类: Java基础(9)  只要编译器从上下文中能 ...

  6. 支付宝小程序创建时的五大坑

    昨天支付宝小程序在北京正式召开小程序专场会议,本次是支付宝小程序公测一个月以来的首次会议,值得注意的地方有很多,相信各大媒体都已经公布,极乐君就不再重复,现在重点说一下支付宝小程序创建时有哪些坑(特别 ...

  7. 创建支付订单调用三方支付(支付宝支付)

    创建一个表保存店铺的支付宝信息:店铺的私钥,appid,支付宝的公钥,店铺名等其他需要的字段 交换支付宝的公钥 如果使用了内网穿透工具,要记住去官网该自己的ip和端口号,不然异步回调找不到路径 一.准 ...

  8. django创建项目,创建app以及调用templates(模版)和static(静态文件)的方法

    # django创建项目,创建app以及调用templates和static的方法 创建项目project 检查django的版本.我用的是2.2.1版本 打开终端,输入命令: python -m d ...

  9. C++子类析构时要调用父类的析构函数吗?

    析构函数调用的次序是先派生类的析构后基类的析构,在基类的的析构调用的时候,派生类的信息已经全部销毁了.定义一个对象时先调用基类的构造函数.然后调用派生类的构造函数:析构的时候恰好相反:先调用派生类的析 ...

最新文章

  1. 传清华应届生获Facebook offer
  2. CSSFriendlyAdapter 的一个Bug
  3. javaSE各阶段练习题--面向对象-StringBuilder-继承-包和访问权限
  4. java jar包示例_Java包getSpecificationVendor()方法和示例
  5. bitmap转换为drawable
  6. 【机器视觉学习笔记】伽马变换(C++)
  7. logstash的output插件
  8. 8天学通MongoDB——第四天 索引操作
  9. Daily Report 2012.11.06 刘宇翔
  10. Hibernate简易BaseDao演示单例
  11. 函数和结构(C++)
  12. ip访问次数统计 nginx_nginx访问量统计
  13. 计算机截图工具无法运行,win7运行截图工具提示截图工具未运行解决方法
  14. DIY LDAC蓝牙接收器(一)预备篇
  15. git tracked branch
  16. css bottom属性 使元素位置相对固定
  17. beautify配置
  18. php 开源项目汇总
  19. Android课题研究的主要观点,课题研究的主要内容
  20. 宇宙生命进化的八大密度

热门文章

  1. 【java】通过spring通过AOP实现日志打印(二)
  2. 智慧景区票务系统需要服务器吗,景区票务系统要不要选择SaaS系统的
  3. 实时刷新的在线聊天室
  4. 值得收藏的30道Python练手题(附详解)
  5. 关于机器学习预测,我的训练集R方可以达到0.9以上,但是测试集R方只能0.2左右,而且不是过拟合,各种调参之后测试集R方最高只能到这个水平,请问这种是什么原因
  6. 线性代数(三十六) : 最小多项式
  7. 小程序之☞页面的生命周期
  8. 一级指针和二级指针使用区别
  9. MRI相关的基本概念
  10. Vuetify使用本地图标资源