我对BroadcastReceiver感到困惑。 作为标题,我认为我的应用程序中不需要另外一个BroadcastReceiver。
或者,如果我在我的应用程序中使用一堆BroadcastReceiver,有什么问题吗? 我认为它会影响我的操作系统执行内存和性能,我是对的。
感谢您的时间和热心。
答案 0 :(得分:1)
一切由你决定。对于不同的BroadcastReceiver
集,您可以有多个intent-filter
,或者使用单个广播接收器来处理所有的intent-filters。
通常最好根据一组意图过滤器来定义不同的接收器,这些过滤器应该为相关的任务组提供功能。
就像我说的,一切都取决于你。如果您有大量的intent-filters并且希望正确处理代码(基于它执行的任务的类似分类),那么请选择多个接收器。否则,在单个接收器中处理少量滤波器很容易且合乎逻辑。
此外,您的应用程序的性能不会受到阻碍,因为它取决于接收器中任务的执行,而不是接收器或过滤器的数量。
提示:尝试在任何需要执行繁重工作的地方引入Threads
:)
答案 1 :(得分:1)
认为班级应该承担一项责任。因此,如果您的BroadcastReceiver同时处理SMS
和CALL
意图,请考虑使用多个接收器。
答案 2 :(得分:0)
您可以在应用中声明任意数量的BroadcastReceivers。如果在您收到的每个广播中,您将开始进行一百万次长时间运行的后台操作。
但是你计划的应用程序真的需要所有这些接收器吗?
有一些API以编程方式启用/禁用您声明的接收器,也可能是一个不错的选择。
修改强> 我想如果你自己做一点测试会更容易。
这些是BroadcastReceiver可能接收的所有不同操作。因此,它只是使一些应用程序更简单,更有条理,实现多个接收器,每个不同类型的操作一个接收器。或者它可能只接收两个非常相似的动作,并且在一个接收器中完成所有操作更简单。
有意义吗?