android:enabled对于一个服务是什么意思?

7
android:enabled是指一个服务是否可以被系统实例化。如果一个服务被禁用,它仍然可以在本地使用,但无法由系统启动。如果你想使用已禁用的服务,则需要手动启动它。如果完全不能使用,那么这个服务存在的意义何在呢?其实你可以将服务标签注释掉来达到同样的效果。如果你想创建一个不供其他应用程序使用的服务,android:enabled能否用于此目的还不确定。

只是想要补充一点,如果你需要创建一个不应该被其他应用程序使用的服务,android:exported="false" 是可行的方法。 - LaVepe
1个回答

13

那是什么意思?

这意味着它是否能够运行。

它能用吗?

如果它被禁用则不能用。

它只能在本地使用吗?

如果它被禁用则不是只能在本地使用。

如果完全不能使用,那有什么意义呢?

android:disabled 效果会继承,对于 activities 和 BroadcastReceivers 确实有用例。在服务的情况下,可能不太可能被使用,但仍可能具有价值(例如,为第三方提供的 API,用户可以选择退出)。

难道你不能注释掉服务标签吗?

Java 代码无法在运行时注释掉服务标签。但是,android:enabled 的值可以通过 PackageManager 在运行时进行修改。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接