繁体   English   中英

一个应用程序可以只包含一个广播接收器吗?

[英]Can an app consist of just one Broadcast Receiver?

我有一个应用程序,它有一个广播接收器,用于侦听特定意图,然后执行一些代码。 执行的这段代码是否需要在其自己的单独服务中,或者广播接收器是否会启动它自己的线程?

当前正在执行 BroadcastReceiver 的进程(即当前在其 onReceive(Context, Intent) 方法中运行代码)被认为是前台进程,并且将由系统保持运行,除非在极端 memory 压力的情况下。

从 onReceive() 返回后,BroadcastReceiver 不再处于活动状态,它的托管过程仅与在其中运行的任何其他应用程序组件一样重要。 这一点尤其重要,因为如果该进程仅托管 BroadcastReceiver(用户从未或最近未与之交互的应用程序的常见情况),则在从 onReceive() 返回时,系统将认为其进程为空并主动终止以便资源可用于其他更重要的流程。

这意味着对于运行时间较长的操作,您经常将服务与 BroadcastReceiver 结合使用,以在整个操作期间保持包含进程的活动状态。

有关更多解释,请检查:

http://developer.android.com/reference/android/content/BroadcastReceiver.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM