广播接收器 - 使用一个比使用多个更好吗?
Broadcast Receiver - is using one better than many?
这是我的 android 清单中的当前设置:
<receiver
android:name=".receivers.BaseReceiver"
android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED"/>
<action android:name="android.intent.action.PACKAGE_ADDED"/>
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
<data android:scheme="package" />
</intent-filter>
</receiver>
<receiver
android:name=".receivers.BootReceiver"
android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
我已经分离了这些接收器,因为这些包只适用于 <data android:scheme="package" />
,如果我将此架构添加到我的过滤器,引导接收器将停止工作。
现在我的问题是:
这会消耗更多电量吗?或者我是否将包裹接收者汇总为一个重要?或者我可以根据需要创建任意数量的接收器,因为 android 不会 运行 任何东西,只是按需检查所有已安装应用程序的清单吗?
接收器由系统处理。这是在动作发生时发送消息的系统,因此您可以根据需要接收任意数量的接收器,它不会影响电池,您只需妥善处理它们即可。
对于一个或多个问题,这取决于您对它们的用途。某些情况下一个处理会更容易,其他情况下多个单独处理会更容易。
这是我的 android 清单中的当前设置:
<receiver
android:name=".receivers.BaseReceiver"
android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED"/>
<action android:name="android.intent.action.PACKAGE_ADDED"/>
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
<data android:scheme="package" />
</intent-filter>
</receiver>
<receiver
android:name=".receivers.BootReceiver"
android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
我已经分离了这些接收器,因为这些包只适用于 <data android:scheme="package" />
,如果我将此架构添加到我的过滤器,引导接收器将停止工作。
现在我的问题是:
这会消耗更多电量吗?或者我是否将包裹接收者汇总为一个重要?或者我可以根据需要创建任意数量的接收器,因为 android 不会 运行 任何东西,只是按需检查所有已安装应用程序的清单吗?
接收器由系统处理。这是在动作发生时发送消息的系统,因此您可以根据需要接收任意数量的接收器,它不会影响电池,您只需妥善处理它们即可。
对于一个或多个问题,这取决于您对它们的用途。某些情况下一个处理会更容易,其他情况下多个单独处理会更容易。