Android 主线程处于阻塞状态时ANR对话框的显示方式
我正在读《代码》和《代码》。大多数事情对我来说都是有意义的,但我不明白,如果主线程被阻塞,那么操作系统如何在同一进程中创建一个Android 主线程处于阻塞状态时ANR对话框的显示方式,android,Android,我正在读《代码》和《代码》。大多数事情对我来说都是有意义的,但我不明白,如果主线程被阻塞,那么操作系统如何在同一进程中创建一个对话框,并在屏幕上显示它。从文件中: 当下列情况之一发生时,应用程序将触发ANR: 1.当您的活动处于前台时,您的应用程序在5秒内未响应输入事件或广播接收器(如按键或屏幕触摸事件)。 2.虽然前台没有活动,但您的BroadcastReceiver尚未在相当长的时间内完成执行 i、 e主线程与另一个线程处于死锁状态,因此操作系统如何显示对话框。因为我认为我们只能从主线程显示
对话框
,并在屏幕上显示它。从文件中:
当下列情况之一发生时,应用程序将触发ANR:1.当您的活动处于前台时,您的应用程序在5秒内未响应输入事件或广播接收器(如按键或屏幕触摸事件)。
2.虽然前台没有活动,但您的
BroadcastReceiver
尚未在相当长的时间内完成执行
i、 e主线程与另一个线程处于死锁状态,因此操作系统如何显示对话框。因为我认为我们只能从主线程显示对话框。如果我错了,请纠正我,并让我知道
ANR
对话框的过程。如有任何解释,将不胜感激。Thx这是因为显示对话框的不是你的应用程序。系统处理它。从 如果应用程序位于前台,系统将向用户显示一个对话框 因此,当您的应用程序是ANR时,一个外部“应用程序”(或意图,如果您愿意)将处理弹出的对话框,允许您终止ANR应用程序
另外,阅读以了解ANR和crash之间的区别那么您指的是从另一个应用程序(系统应用程序)的
上下文打开的对话框
?是的。这是一个系统对话框
。。。它是由操作系统本身提出的。如果您想手动处理(主要是关闭)一个系统对话框,请阅读本手册,您有一个特殊的意图,即收听(即广播侦听器)。它叫