当我以隐含意图启动服务时,我收到警告:
使用startservice的隐含意图并不安全:...
为什么?
修改
我使用的是我自己的内部类别,其他应用程序不应该使用,我的服务不会导出android:exported="false"
。
答案 0 :(得分:10)
使用Implicit Intents
您尚未指定组件,这意味着Android
按给定的Intent-Action
选择组件。
使用android:exported="false"
将确保其他人无法启动您的服务。但是如果我用BroadcastReeciver
编写了一个应用程序来监听你的Intent-Action
并做一些恶意工作呢?
当我将一个服务声明到我的应用程序并使用相同的类别/过滤器/操作时,也会发生同样的情况。
所以请使用Explicit Intents
。
答案 1 :(得分:0)
如果你有多个具有相同IntentFilter的服务,系统不知道应该启动哪一个,系统不会要求用户选择。