我延伸BroadcastReceiver
,并在onReceive()
我做我需要做的任何事情。
onReceive()
超时,来自文档:
超时为10秒 系统允许在考虑之前 要被阻挡的接收器和 被杀的候选人
当我处于调试模式时,这会产生问题。我需要超过10秒(有时)。如果我在10秒内没有完成所有调试,我的连接将关闭,调试将停止。
我是否可以增加超时或禁用它以进行调试?
感谢。
答案 0 :(得分:11)
为了防止您的应用在调试期间在断点处暂停时强行关闭,请尝试安装开发工具应用并启用调试应用设置:
允许您选择要应用的应用程序 调试。您无需将其设置为 附加调试器,但设置此 价值有两个影响:
- 如果你暂停,它会阻止Android抛出错误 断点很长一段时间 调试。
所有细节都在这里:http://developer.android.com/tools/debugging/debugging-devtools.html
如果您在onReceive
方法中执行了一些复杂操作,请考虑让BroadcastReceiver
开始Service并传递onReceive
内的数据。 Service
可以进行更长时间的处理。
答案 1 :(得分:1)
即使在调试模式下,我也遇到了这个问题。事实证明,另一个广播正在发送并且没有被处理,因为我正在主线程上调试另一个广播。 Android认为我的进程是在ANR中并且杀死了整个过程。
我不得不暂时修改代码,以便在进行调试时不调用其他广播。