android开发者网站指出,在onReceive()方法返回后,BroadcastReceiver进程有资格被删除,并且您不应该在BroadcastReceiver中启动线程/计时器。但是这与Thread / Timer类的静态实例变量有什么关系呢?我假设这些静态实例变量仍然存在,因为它们绑定到加载的类?或者我错了(例如,因为该进程是在新的dalvik JVM中启动的)并且我是否应该在BroadcastReceivers中使用线程/定时器?
答案 0 :(得分:1)
或者我错了(例如,因为该进程是在新的dalvik JVM中启动的)并且我是否应该在BroadcastReceivers中使用线程/定时器?
如果在清单中注册了BroadcastReceiver
,请不要分叉线程,启动计时器,注册侦听器,或以其他方式执行与接收器相关的任何需要超出接收器的事物。如果您的应用中没有其他内容正在运行,那么您的流程就可以随时终止,并随身携带。
如果BroadcastReceiver
是通过registerReceiver()
从其他组件注册的,那么其他组件可以分叉线程,启动计时器,注册侦听器或其他任何内容,这取决于该组件的正常规则。 / p>