应用程序无响应的上报方法、装置和计算机设备制造方法及图纸

技术编号:20796866 阅读:43 留言:0更新日期:2019-04-06 10:28
本申请提供一种应用程序无响应的上报方法、装置和计算机设备,所述的方法包括:创建主线程的运行回路Runloop的观察者,并开启子线程;所述观察者监听到所述运行回路Runloop中应用程序组件的状态发生改变时,向所述子线程发送通知消息;所述子线程接收到通知消息时开始计时,若设定阀值到达时还未接收到所述观察者发送的关于所述应用程序组件的新的通知消息,上报应用程序无响应。本申请实施例实现了ANR的准确上报。

Application program unresponsive reporting methods, devices and computer equipment

The application provides a method, device and computer device for reporting application response-free. The method includes: creating an observer of the main thread's running circuit Runloop and opening a sub-thread; sending a notification message to the sub-thread when the observer hears a change in the status of the application component in the running circuit Runloop; and receiving a pass-through to the sub-thread. Timing begins when the message is known, and the application will not respond if a new notification message about the application component sent by the observer has not been received when the set threshold arrives. The embodiment of the application realizes the accurate reporting of ANR.

【技术实现步骤摘要】
应用程序无响应的上报方法、装置和计算机设备
本申请涉及计算机
,具体而言,本申请涉及一种应用程序无响应的上报方法、装置和计算机设备。
技术介绍
如果应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:ApplicationNotResponding)对话框。用户可以选择“等待”而让应用程序继续运行,也可以选择“强制关闭”。所以一个流畅的合理的应用程序中不能出现ANR,而让用户每次都要处理这个对话框。而为了对出现ANR的应用程序进行改进,从而提高应用程序的性能,准确上报ANR至关重要,因此亟需一种能够准确上报ANR的方案。
技术实现思路
本申请针对现有方式的缺点,提出一种应用程序无响应的上报方法、装置和计算机设备,以实现ANR的准确上报。本申请的实施例根据第一个方面,提供了一种应用程序无响应的上报方法,包括:创建主线程的运行回路Runloop的观察者,并开启子线程;所述观察者监听到所述运行回路Runloop中应用程序组件的状态发生改变时,向所述子线程发送通知消息;所述子线程接收到通知消息时开始计时,若设定阀值到达时还未接收到所述观察者发送本文档来自技高网...

【技术保护点】
1.一种应用程序无响应的上报方法,其特征在于,包括:创建主线程的运行回路Runloop的观察者,并开启子线程;所述观察者监听到所述运行回路Runloop中应用程序组件的状态发生改变时,向所述子线程发送通知消息;所述子线程接收到通知消息时开始计时,若设定阀值到达时还未接收到所述观察者发送的关于所述应用程序组件的新的通知消息,上报应用程序无响应。

【技术特征摘要】
1.一种应用程序无响应的上报方法,其特征在于,包括:创建主线程的运行回路Runloop的观察者,并开启子线程;所述观察者监听到所述运行回路Runloop中应用程序组件的状态发生改变时,向所述子线程发送通知消息;所述子线程接收到通知消息时开始计时,若设定阀值到达时还未接收到所述观察者发送的关于所述应用程序组件的新的通知消息,上报应用程序无响应。2.根据权利要求1所述的应用程序无响应的上报方法,其特征在于,还包括:所述子线程上报从开始计时到上报应用程序无响应期间内主线程的堆栈信息。3.根据权利要求2所述的应用程序无响应的上报方法,其特征在于,所述上报方法还包括:在所述运行回路Runloop中启动帧率检测计时器,在所述子线程中启动同步计时器;所述子线程上报从开始计时到上报应用程序无响应期间内主线程的堆栈信息,包括:检测所述帧率检测计时器的回调和所述同步计时器的回调是否同步;若不同步,上报从开始计时到上报应用程序无响应期间内主线程的堆栈信息。4.根据权利要求3所述的应用程序无响应的上报方法,其特征在于,所述检测所述帧率检测计时器的回调和所述同步计时器的回调是否同步,包括:在所述同步计时器回调时获取所述帧率检测计时器最后一次回调的时间;计算所述同步计时器的当前时间与所述帧率检测计时器最后一次回调的时间的差值;若所述差值大于预设的单个观察者回调处理时间,判定所述帧率检测计时器的回调和所述同步计时器的回调不同步,否则判定所述帧率检测计时器的回调和所述同步计时器的回调同步。5.一种应用程序无响应的上报装置,其特征在于,包括:观察者创建模块,用于创建主线程的运行回路Runloop的观察者;子线程开启模块,用于开启子线程;观察者监听模块,用于监听到所述运行回路Runloop中应用程序组件的状态发生改...

【专利技术属性】
技术研发人员:陈智颖余平
申请(专利权)人:广州华多网络科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1