中山网站建设制作,个体户 做网站,最火的推广软件,企业做网站公司例如#xff0c;我需要一个BroadcastReceiver来获取这些事件:重新启动或关机屏幕开或关电池状态(电压#xff0c;接通电源#xff0c;温度)物理按钮按下(相机#xff0c;媒体等)但是我需要监听器来获取以下事件:用于传感器事件(加速度#xff0c;磁场#xff0c;方向我需要一个BroadcastReceiver来获取这些事件:重新启动或关机屏幕开或关电池状态(电压接通电源温度)物理按钮按下(相机媒体等)但是我需要监听器来获取以下事件:用于传感器事件(加速度磁场方向接近度温度光照水平等)的EventListener用于位置事件的LocationListener(网络位置GPS)似乎接收方和监听方都存在以便我可以接收事件。除了明显的语义差异之外两者之间还有什么区别我可以在其中一项上做其他事情而不能在另一项上做尤其是在屏幕关闭时我可以占用并运行多少CPU方面为什么出于接收事件的目的有两种完全不同的构造最佳答案两者之间的差异如此之多它们对某些事物的回应是唯一的相似之处之一。差异:BroadcastReceivers接收Intent而Listener基本上可以做任何事情因为它没有定义的目的所以只是一个命名约定。例如在开发人员网站上搜索BroadcastReceiver然后搜索ListenerBroadcastReceivers刚收到一个非直接的Intent Broadcast监听器被显式调用。BroadcastReceiver是它自己定义的类因为它具有明确的目的(接收Intent)而监听器可以是任何东西-它们通常是interface并且提供它们是为了使回调可以从一个类到另一个类进行。BroadcastReceivers通常用于全局的系统范围的事件特定事件的监听器(即位置传感器除非有某些东西(例如要向其发布的监听器)否则不应该每秒发送一次位置更新。 -这很重要它影响到一切因此应广播给所有感兴趣的接收者。事件BroadcastReceiver接收的事件通常是非连续事件(一次触发)而监听器(取决于它们的工作)可以将用于持续更新(连续)。 如果在 list 中声明了BroadcastReceivers则系统可以将其实例化。仅动态创建监听器(因此通过代码)。CPU/功耗的使用取决于两者的实现尤其是因为如上所述监听器可以是或。Are there things I can do in one but not the other, especially in regards to things like how much CPU I can take and running while the screen is off?BroadcastReceivers仅具有10 seconds of guaranteed execution time。监听器没有特定的用途因此没有此限制。您肯定无法从BroadcastReceiver做的事情:In particular, you may not show a dialog or bind to a service fromwithin a BroadcastReceiver.可能还有更多-这就是我想出的。