iOS 9 应用程序冻结与控制台日志“BKSendHIDEvent”

Posted

技术标签:

【中文标题】iOS 9 应用程序冻结与控制台日志“BKSendHIDEvent”【英文标题】:iOS 9 App freeze with console log "BKSendHIDEvent" 【发布时间】:2015-12-03 10:13:03 【问题描述】:

应用程序启动很长时间后, 触摸屏幕时控制台中有一些日志:

BKSendHIDEvent: IOHIDEventSystemConnectionDispatchEvent error:0xE00002E8 -- Unknown event dropped

所有按钮都没有响应,整个应用程序冻结。 目前,这个问题只发生在 iPhone 5s 上。

类似问题:https://forums.xamarin.com/discussion/55646/alot-of-annotation-on-mkmapview

有人有同样的问题吗?

更新:我发现app被ios杀死时线程超过500个,因为我使用第三方类Reachability的次数太多了。为了解决这个问题,我声明了一个静态变量,冻结似乎不会再次发生。

static Reachability *staticReachability;
+(NetworkStatus)detectNetwork
    if (staticReachability == nil) 
        staticReachability = [Reachability reachabilityForInternetConnection];
        [staticReachability startNotifier];
    
    NetworkStatus status = [staticReachability currentReachabilityStatus];
    return status;

【问题讨论】:

【参考方案1】:

我也有同样的问题。

在我的情况下,它是在 iPad (OS 9.1) 中关闭 wifi 后发生的。应用程序无响应。在控制台中我可以看到相同的错误。

打开wifi后,应用程序再次响应,我可以继续。

【讨论】:

【参考方案2】:

我已经解决了... 在我使用 swift 的情况下,使用 Xcode 7.2。 我使用了自定义标签,func layoutSubviews() 调用无限时间,控制台显示BKSendHIDEvent: IOHIDEventSystemConnectionDispatchEvent

以下是相同的修复:

class CustomLabel: UILabel 

 var isSubLayoutSet: Bool = false

    override internal init(frame: CGRect) 
        super.init(frame: frame)

    
    required internal init?(coder aDecoder: NSCoder) 
        super.init(coder: aDecoder)
    

    override func layoutSubviews() 
        super.layoutSubviews()

        if isSubLayoutSet == false
        
            //--- do your stuff related to set font or any operation...
            ///---
            isSubLayoutSet = true
        
    

【讨论】:

所以,就是“***”【参考方案3】:

fyi,我在更新到 iOS 9.3 后看到相同的控制台输出“未知事件已丢失”。我不确定它是操作系统,还是运行后台进程的特定应用程序,但我在许多不同的应用程序中看到它,包括主屏幕以及立即重新启动,所以我认为这是最新的 9.3 更新中的一个错误。

【讨论】:

以上是关于iOS 9 应用程序冻结与控制台日志“BKSendHIDEvent”的主要内容,如果未能解决你的问题,请参考以下文章

调用openURL后iOS 9.3冻结

iOS - 从导航控制器推送时应用程序冻结

按下按钮时iOS tableview冻结,控制台没有错误

带有自定义后退按钮的滑动手势冻结根视图控制器

来自后台时iOS App UI冻结

UIModalPresentationFormSheet 中的 UITextView 冻结应用程序 iOS 10