【奇葩】SurfaceView绘制画布home后返回黑屏

Jachon Jachon 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
问题遇到很奇葩,我也不知道什么原因,自己用SurfaceView实现了绘制画布,在线程里面通过lockcanvas获取canvas绘制图形,然后绘制完成后点击home按钮,然后再点击程序图标切回程序后会黑屏大概一段时间(有时候秒进,有时候延时很长),代码奉上
t = new Thread(){
public void run() {
Rect rect = new Rect();
rect.left = 20;
rect.top = 20;
rect.bottom = 100;
rect.right = 300;
loadImage();
SurfaceHolder holder = canvas.getHolder();
while(true){
long start = System.currentTimeMillis();
Canvas g = holder.lockCanvas();
if(g != null){
paintImage(g);
//
holder.unlockCanvasAndPost(g);
}else{
// Thread.yield();//把这句注释去掉就可以解决返回黑屏
}
long end = System.currentTimeMillis() - start;
if(end < 33){
try {
Thread.sleep(33-end);
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
};
};
t.start();


其中我在当canvas为空的时候thread.yield一下就可以解决home返回后黑屏,求教是什么原因,我同事用同样的代码,没有yield却没有问题
eclipse版本4.2 ADT版本21.1.0
...全文

相关推荐

Android相机源码

- 预览数据通过Surface或者SurfaceTexture传递给应用,然后可以显示在SurfaceView或者 TextureView上。4.

chengsansan

Android二维码扫描优化实战:Zxing集成与踩坑全解析

二维码识别已成为移动应用的基础能力之一。在Android平台上,实现扫码功能通常需要解决相机预览、图像解码、对焦策略等一系列工程问题。Zxing作为老牌开源条码解析库,因其稳定性和可定制性被广泛使用。理解其解码链路——取帧、灰度化、二值化、解码——是优化识别率的前提。通过合理裁剪ROI区域、限定解码格式、配置对焦模式,可有效提升扫码速度和准确性。结合工程实践,分享Zxing集成方案、常见问题排查技巧,帮助开发者构建高可用扫码模块,应对弱光、反光、机型适配等真实场景挑战。

weixin_33858336

正交拉丁超立方(OLHC)分组与实验设计(DOE)评估的优化Python实现.rar

正交拉丁超立方(OLHC)分组与实验设计(DOE)评估的优化Python实现.rar

天天Matlab科研工作室

Java微服务如何拆解审计日志查询服务

标题:Java微服务如何拆解审计日志查询服务 内容概要:围绕缓存策略、任务调度、回压控制和审计追踪,拆解Java微服务如何拆解审计日志查询服务的实现细节。 xdronline.com xdrea.com 9g.xinmei6.com xinghaohuanbao.com m.xiker66.com

2601_97068614

港股十档行情tick数据涵盖逐笔成交与委托,记录每笔买卖价格、成交量及挂单明细 逐笔数据包含成交时间、价格、股数、成交方向,委托数据展示买一至买十、卖一至卖十的价格与数量

港股十档行情tick数据涵盖逐笔成交与委托,记录每笔买卖价格、成交量及挂单明细。逐笔数据包含成交时间、价格、股数、成交方向,委托数据展示买一至买十、卖一至卖十的价格与数量。分钟数据汇总每分钟开盘价、最高价、最低价、收盘价、成交量及成交额。历史行情覆盖近十五年,字段清晰完整,便于回溯分析。 数据源:CMES金融数据库

2401_89140926
评论 13
收藏 已收藏
分享
返回顶部
Jachon
Android 80,490 成员 91,375 内容