我有一个正在监听屏幕关闭的BroadcastReceiver。
由于我不会进入的原因,我需要我的活动在暂停时完成()。
然而,广播需要很长时间才能到达onDestroy
方法(这是我可以放置它的最后一个位置)已经取消注册接收器,所以我的活动永远不会得到通知屏幕已经睡着了。
在什么是最丑陋的kluge中,我发现如果我设置延迟大约500ms并从onPause中的延迟Runnable调用finish(),一切都按预期工作。然而,这是非常丑陋的,我想知道我还能做些什么来解决这个问题。看起来这只是屏幕超时广播中的一个问题,因为屏幕关闭的动作为我调用onPause(调用finish())。其他广播在白天到来(可以这么说),所以它们不会产生同样的问题,因为它们会在一瞬间处理。
答案 0 :(得分:1)
这听起来好像是一些非UI相关的东西,在这种情况下,如果你想要它在Service
而不是Activity
可能是有意义的,即使你的UI是不活跃。