0

我对广播接收器有点困惑。作为标题,我认为我的应用程序中不需要另一个 BroadcastReceiver。

或者,如果我在我的应用程序中使用一堆 BroadcastReceiver 有什么问题吗?我认为这会影响我的操作系统执行内存和性能,对吗?

感谢您的时间和热情。

4

3 回答 3

1

全取决于你。您可以拥有多个BroadcastReceiver不同的集合intent-filter或使用单个广播接收器来处理所有意图过滤器。

通常最好根据意图过滤器集定义不同的接收器,这些意图过滤器应该为相关的任务组提供功能。

就像我说的,这完全取决于你。如果您有大量的意图过滤器并且您希望正确处理您的代码(基于它执行的类似任务分类),那么请使用多个接收器。否则,在单个接收器中处理几个过滤器很容易且合乎逻辑。

此外,您的应用程序的性能不会受到阻碍,因为它取决于接收器中任务的执行,而不是接收器或过滤器的数量。

提示:尝试介绍Threads您需要执行一些繁重工作的地方:)

于 2012-08-15T09:27:17.190 回答
1

认为类应该有一个责任。因此,如果您的 BroadcastReceiver 处理这两者SMSCALL意图,那么请考虑拥有多个接收器。

于 2012-08-15T09:27:58.490 回答
0

您可以在应用程序上声明任意数量的广播接收器。它将影响您是否在收到的每个广播中开始执行一百万个长时间运行的后台操作。

但是您计划的应用程序真的需要所有这些接收器吗?

有一些 API 可以以编程方式启用/禁用您声明的接收器,这也可能是一个不错的选择。

编辑: 我想如果你自己做一点测试会更容易。

  • 在您的 Eclipse 上,创建一个新的 Android 项目。
  • 创建一个扩展广播接收器的类。
  • 保存并关闭它。
  • 现在转到清单,应用程序选项卡,应用程序节点,添加按钮,添加接收器。
  • 等待 Eclipse 搜索您的应用程序并找到您刚刚创建的应用程序。
  • 在接收器内部放置了一个新的 Intent 过滤器。不需要名字什么的。
  • 在过滤器内放置一个动作。
  • 在操作名称中,检查下拉菜单。

这些是 BroadcastReceiver 可能正在接收的所有不同操作。因此,它只是让某些应用程序更简单、更有条理地实现多个接收器,每个不同类型的动作一个接收器。或者它可能只接收两个非常相似的动作,并且将它们全部放在一个接收器中更简单。

是否有意义?

于 2012-08-15T09:24:00.143 回答