我想知道是否可以使用其他应用发送的意图启动服务?我有一个android.intent.action.BOOT_COMPLETED
的广播接收器,即使在收到意图时,它也能正常工作.BrodcastReceiver类没有实例化。我为tasker的外部意图做了类似的事情,但它不起作用。
<receiver android:name="BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
答案 0 :(得分:2)
我想知道是否可以使用其他应用发送的意图启动服务?
不确定
我有一个用于android.intent.action.BOOT_COMPLETED的广播接收器,即使在接收到意图时,它也能正常工作.BrodcastReceiver类没有实例化。
这是因为清单注册的BroadcastReceiver
对象没有提前实例化。它们仅在发送匹配的广播时创建。
我为来自tasker的外部意图做了类似的事情,但它不起作用。
“它不起作用”是没有足够的信息供任何人帮助你。
但是,如果您的<service>
有<intent-filter>
,则其他应用可以创建与Intent
匹配的<intent-filter>
,并使用该android:exported="false"
启动(或绑定)您的<service>
服务。有两个例外:
如果您将<intent-filter>
添加到android:permission
,则第三方应用根本无法调用它,但在这种情况下,您可以更好地删除<service>
如果您在{{1}}元素上使用{{1}},则其他应用需要保留您声明的权限才能启动或绑定到您的服务