首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >应用进入前台时Webthread锁定主线程

应用进入前台时Webthread锁定主线程
EN

Stack Overflow用户
提问于 2014-07-08 09:32:20
回答 2查看 992关注 0票数 3

我正在使用UIWebView在我的iOS应用程序中嵌入YouTube HTML播放器,有时当应用程序从后台进入前台(视频正在播放)时,应用程序就冻结了,我得到了0x000000008badf00d崩溃。

代码语言:javascript
运行
AI代码解释
复制
OS Version:          iOS 7.1.1 (11D201)
Report Version:      104

Exception Type:  00000020
Exception Codes: 0x000000008badf00d
Highlighted Thread:  0

Application Specific Information:
com.myapp.myapp failed to resume in time

Elapsed total CPU time (seconds): 6.460 (user 6.460, system 0.000), 27% CPU 
Elapsed application CPU time (seconds): 3.069, 13% CPU

Thread 0:
0   libsystem_kernel.dylib          0x39911f9c __psynch_mutexwait + 24
1   libsystem_pthread.dylib         0x3997b298 _pthread_mutex_lock_contended + 48
2   libsystem_pthread.dylib         0x39977d36 _pthread_mutex_lock + 258
3   WebCore                         0x36e2f190 _WebTryThreadLock(bool) + 40
4   WebCore                         0x36e2ffb8 WebThreadLock + 76
5   WebCore                         0x36e6b962 -[TileLayer layoutSublayers] + 14
6   QuartzCore                      0x3106db3a CA::Layer::layout_if_needed(CA::Transaction*) + 346
7   QuartzCore                      0x3106d9cc CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 12
8   QuartzCore                      0x3106d3e0 CA::Context::commit_transaction(CA::Transaction*) + 224
9   QuartzCore                      0x3106d1f2 CA::Transaction::commit() + 310
10  AVFoundation                    0x2da4fb60 -[AVPlayerLayer _updateSubtitles:forceRender:] + 696
11  AVFoundation                    0x2da500a8 -[AVPlayerLayer layerDidBecomeVisible:] + 200
12  QuartzCore                      0x3106bbf4 CA::Layer::mark_visible(CA::Transaction*, bool) + 80
13  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
14  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
15  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
16  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
17  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
18  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
19  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
20  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
21  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
22  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
23  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
24  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
25  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
26  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
27  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
28  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
29  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
30  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
31  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
32  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
33  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
34  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
35  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
36  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
37  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
38  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
39  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
40  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
41  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
42  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
43  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
44  QuartzCore                      0x3106bc30 CA::Layer::mark_visible(CA::Transaction*, bool) + 140
45  QuartzCore                      0x3106cb82 CA::Layer::set_visible(unsigned int) + 346
46  QuartzCore                      0x3106c9e6 CA::Context::set_layer(void const*) + 134
47  UIKit                           0x313feab2 -[UIWindow _createContext] + 1138
48  UIKit                           0x316572a4 _UIWindowUpdateVisibleContextOrder + 172
49  UIKit                           0x31657158 +[UIWindow _prepareWindowsPassingTestForAppResume:] +         12
50  UIKit                           0x315fc534 -[UIApplication _handleApplicationResumeEvent:] + 72
51  UIKit                           0x313fb60e -[UIApplication handleEvent:withNewEvent:] + 1878
52  UIKit                           0x313fadf4 -[UIApplication sendEvent:] + 68
53  UIKit                           0x3145f400 _UIApplicationHandleEvent + 612
54  GraphicsServices                0x33a68b52 _PurpleEventCallback + 606
55  GraphicsServices                0x33a6873a PurpleEventCallback + 30
56  CoreFoundation                  0x2eb91844     __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 32
57  CoreFoundation                  0x2eb917de __CFRunLoopDoSource1 + 342
58  CoreFoundation                  0x2eb8ffaa __CFRunLoopRun + 1402
59  CoreFoundation                  0x2eafa764 CFRunLoopRunSpecific + 520
60  CoreFoundation                  0x2eafa546 CFRunLoopRunInMode + 102
61  GraphicsServices                0x33a676ce GSEventRunModal + 134
62  UIKit                           0x3145988c UIApplicationMain + 1132
63  myapp                           0x0003ba0e main (main.m:14)
64  myapp                           0x0003b9c4 start + 36

基本上,我使用YouTube HTML player来加载UIWebView文件,并使用[webView stringByEvaluatingJavaScriptFromString: jsString]来控制它(如loadVideoById()play()pause()等)。还有一些机制可以让应用程序在后台播放视频,大多数时候它工作得很好,这种崩溃只发生在它在后台播放几个视频后,并试图进入前台,但很难再现。

似乎webthread锁定了主线程,所以iOS杀死了我的应用程序,我已经研究这个问题几个星期了,但没有运气,任何建议都是受欢迎的。

EN

回答 2

Stack Overflow用户

发布于 2015-05-04 05:40:43

经过多次实验,当应用程序进入后台时,用CSS隐藏html player div标签,然后在收到appDidBecomeActive事件后重新显示它,这样就可以避免这个问题。

我认为当应用程序激活时,YouTube html播放器正在尝试做一些与UI相关的事情,所以它可能会锁定主线程并导致0x000000008badf00d崩溃。

希望这个答案能对某些人有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2016-02-11 03:07:35

在iOS 7上,只有在后台线程上使用包含YouTube iFrame播放器的超文本标记语言字符串调用loadHTMLString:baseURL:时,我才遇到过这个问题。将该调用与所有其他UI调用一起移动到主线程似乎解决了这个问题。

我应该指出的是,我无法在iOS 8和9中重现这个问题,所以这也可能是一个WebKit错误,在后来的iOS更新中得到了修复。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24628389

复制
相关文章
针对单个网站的渗透思路
只需要将二级域名输入进去即可,然后默认扫描的是80端口(Web服务),443端口(https服务)
drunk_kk
2021/06/24
1.5K0
Mybatis单个参数的if判断(针对异常:There is no getter for property..)
我们都知道mybatis在进行参数判断的时候,直接可以用<if test=""></if> 就可以了,如下:
执笔记忆的空白
2020/12/25
1.1K0
Android 针对单个Activity设置状态栏颜色
代码如下: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//因为不是所有的系统都可以设置颜色的,在4.4以下就不可以。。有的说4.1,所以在设置的时候要检查一下系统版本是否是4.1以上 Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS
听着music睡
2018/06/25
7420
【HighCharts系列教程】七、导出属性——exporting
默认情况下,HighCharts支持将图表导出为图片或打印功能的。也就是在图表的右上角有两个按钮。打击即可进行相应的操作。
全栈程序员站长
2022/09/20
1.5K0
计算资源及编程-仅针对生信人员
第 5 章 计算资源及编程 5.1 硬件配置 理论上在个人Windows电脑上面做生物信息学数据分析是不实际的,因为太多的生物信息学相关软件的开发者对windows并不熟练,没办法提供完善的基于windows操作系统的软件。 而且个人Windows电脑配置肯定不会太高,一般的组学测序数据都是10~500G一个样本,而且很多软件运行的时候对内存要求很高,最后这些数据的分析过程会非常耗时,个人电脑在硬盘,内存,cpu方面均不足以承担这个重任。 所以一般建议使用配置比较高的服务器,而且建议给服务器安装linux系
生信技能树
2018/03/09
2.2K0
计算资源及编程-仅针对生信人员
计算资源及编程-仅针对生信人员
理论上在个人Windows电脑上面做生物信息学数据分析是不实际的,因为太多的生物信息学相关软件的开发者对windows并不熟练,没办法提供完善的基于windows操作系统的软件。 而且个人Windows电脑配置肯定不会太高,一般的组学测序数据都是10~500G一个样本,而且很多软件运行的时候对内存要求很高,最后这些数据的分析过程会非常耗时,个人电脑在硬盘,内存,cpu方面均不足以承担这个重任。
生信技能树
2018/07/27
7770
计算资源及编程-仅针对生信人员
highcharts本地导出
highcharts有自动导出的模块,以vue中使用为例,只要在main.js中引入导出模块并注册
tianyawhl
2022/11/21
9770
Highcharts导出图片
Highcharts是在做项目涉及到统计图的时候大家的首选,同时也会用到highcharts的export功能,将统计图导出为图片,刚好,最近也遇到了这样的事情,总结出来,以备后用。
牛老师讲GIS
2018/10/23
3K0
Highcharts导出图片
Highcharts使用指南
摘要 Highcharts图表控件是目前使用最为广泛的图表控件。本文将从零开始逐步为你介绍Highcharts图表控件。通过本文,你将学会如何配置Highcharts以及动态生成Highchart图表。 ---- 目录 前言(Preface) 安装(Installation) 如何设置参数(How to set up the options) 预处理参数(Preprocess the options) 活动图(Live charts) ---- 一、前言(Preface) Highcharts是一个非常
刘皓
2018/04/03
3.2K0
微信小程序1
小程序组件化开发框架 https://tencent.github.io/wepy/
达达前端
2019/07/03
2.2K0
微信小程序1
为Highcharts 配置语法
实例中 id 为 container 的 div 用于包含 Highcharts 绘制的图表。
用户1685462
2021/09/04
5910
highcharts 极地图的应用
引入 highcharts import HighCharts from "highcharts";
tianyawhl
2020/10/23
1.8K0
Wpbullet:针对WordPress的静态代码分析工具
今天给大家介绍的是一款名叫Wpbullet的工具,广大安全研究人员可以使用这款工具来对WordPress、插件、主题以及其他PHP项目进行静态代码分析。
FB客服
2019/07/09
6530
Wpbullet:针对WordPress的静态代码分析工具
(译)针对 Kubernetes 工作负载的策略工具
本文所讲的策略,指的是在 Kubernetes 中,阻止特定工作负载进行部署的方法。
崔秀龙
2020/07/20
5590
Toast提示工具类
APP开发中我们常用的与用户交互的消息就是Toast 但是Android原生的Toast 比较繁琐, 我们来比较一下
晨曦_LLW
2020/09/25
6580
引入highcharts主题
如果把highcharts的主题放到自己的文件夹中方便修改,该怎么做呢? 新建一个主题的js文件 主题js的内容 import Highcharts from "highcharts/highchar
tianyawhl
2020/05/25
1.1K0
引入highcharts主题
zblog网站改造百度MIP的教程仅针对zblog轻奢主题
这篇文章来聊聊启用百度MIP轻奢主题之后你可能会遇到的一些问题,当然更有可能是你遇到了,而我却没有遇到,届时需要一起研究,这是后话。
李洋博客
2023/10/13
2500
zblog网站改造百度MIP的教程仅针对zblog轻奢主题
HighCharts 嵌套仪表盘
效果图 要点 使用多个DIV绘制不同表盘,并设置背景色透明以叠加 chart: { backgroundColor: 'rgba(0,0,0,0)' }, 源码 <!DOCTYPE html>
路过君
2020/11/12
1.4K0
HighCharts 嵌套仪表盘
highcharts 自适应div的宽度
如果窗口变化时,highcharts图表是自带自适应的,但是切换折叠菜单时,highchats图表并不自适应外层div的宽度。如何实现适应div的宽度?
tianyawhl
2020/07/14
3.1K0
Highcharts-2-配置项
参考信息来自官网,仅供学习使用:https://api.highcharts.com.cn/highcharts
皮大大
2021/03/01
2K0
Highcharts-2-配置项

相似问题

每个系列的Highcharts工具提示格式?

22

Highcharts隐藏系列并保留工具提示

01

Highcharts仅在链接的系列之间共享工具提示

10

Highcharts如何删除工具提示,系列数据之一

110

HighCharts:仅在系列重叠时使用共享工具提示

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文