为什么使用隐式意图启动服务不安全?

时间:2014-02-19 07:04:06

标签: android android-intent intentfilter

当我以隐含意图启动服务时,我收到警告:

  

使用startservice的隐含意图并不安全:...

为什么?

修改

我使用的是我自己的内部类别,其他应用程序不应该使用,我的服务不会导出android:exported="false"

2 个答案:

答案 0 :(得分:10)

使用Implicit Intents您尚未指定组件,这意味着Android按给定的Intent-Action选择组件。

使用android:exported="false"将确保其他人无法启动您的服务。但是如果我用BroadcastReeciver编写了一个应用程序来监听你的Intent-Action并做一些恶意工作呢?

当我将一个服务声明到我的应用程序并使用相同的类别/过滤器/操作时,也会发生同样的情况。

所以请使用Explicit Intents

答案 1 :(得分:0)

如果你有多个具有相同IntentFilter的服务,系统不知道应该启动哪一个,系统不会要求用户选择。