Android:BroadcastReceiver时间限制

VSB*_*VSB 8 android limits broadcastreceiver

是否为BroadcastReceiver.onReceive方法中运行的操作定义了任何时间限制?

Com*_*are 9

onReceive()在主应用程序线程上调用,该线程驱动您的UI.一般onReceive()情况下,如果你的UI在前台,你想要在毫秒内返回,所以你不要冻结UI(也就是说,有"jank").还有5-10秒的限制,之后Android将基本崩溃您的应用程序.

但是,如果您不在前台,则无法可靠地派生后台线程onReceive(),因为一旦onReceive()返回,您的进程可能会终止.

对于清单注册的接收器,一个典型的模式是onReceive()将工作委托给a IntentService,它有自己的后台线程,作为服务,告诉操作系统你的进程仍在做一些工作,应该让你的进程运行一点更长的时间.