0

我想知道是否可以使用从另一个应用程序发送的意图启动服务?我有一个广播接收器,android.intent.action.BOOT_COMPLETED即使在收到意图时它也可以工作,因为它没有实例化 BrodcastReceiver 类。我为 tasker 的外部意图做了类似的事情,但它不起作用。

<receiver android:name="BootReceiver">  
    <intent-filter>  
        <action android:name="android.intent.action.BOOT_COMPLETED" />  
    </intent-filter>  
</receiver>
4

1 回答 1

2

我想知道是否可以使用从另一个应用程序发送的意图启动服务?

当然。

我有一个 android.intent.action.BOOT_COMPLETED 的广播接收器,即使在接收到意图时它也可以工作,因为它没有实例化 BrodcastReceiver 类。

这是因为清单注册的BroadcastReceiver对象没有提前实例化。它们仅在发送匹配的广播时创建。

我为 tasker 的外部意图做了类似的事情,但它不起作用。

“它不起作用”对于任何人来说都不足以帮助您。

但是,如果您有一个<service>with <intent-filter>,其他应用程序可以创建一个Intent匹配的<intent-filter>并使用它来启动(或绑定到)您的服务。有两个例外:

  1. 如果您添加android:exported="false"<service>,则第三方应用程序根本无法调用它,但<intent-filter>在这种情况下,您最好摆脱它

  2. 如果您android:permission<service>元素上使用,则其他应用程序需要保留您声明的权限才能启动或绑定到您的服务

于 2013-04-21T19:18:53.263 回答