如何创建无法以编程方式启动的Android服务?

时间:2012-09-10 19:21:22

标签: android service

是否可以在Android中创建服务,无法通过startService调用以编程方式启动?我的意思是,具有此服务的应用程序和服务本身应仅由用户显式启动,并且只有在服务已经启动的情况下才能通过bindService访问。

2 个答案:

答案 0 :(得分:1)

startService无法启动?怎么开始呢?

我怀疑你想要的是确保只有你自己的应用程序可以启动它,而不是任何外部非你写的应用程序。如果是这种情况,请设置

android:exported="false"

,在AndroidManifest.xml文件中,您希望以这种方式保护每个Service

答案 1 :(得分:1)

  

是否可以在Android中创建服务,无法通过startService调用以编程方式启动?

不是真的。您可能会从stopSelf()拨打onStartCommand(),但我从未尝试过,可能会导致意外问题。

  

服务本身应仅由用户明确启动

Android中的用户无法直接启动服务,只能通过某些应用程序启动服务,例如您自己的应用。

  

并且只能通过bindService

访问

您无法阻止拨打startService()。如果您的服务未导出,则其他应用程序将无法启动或绑定到该服务。

  

如果它已经启动,它可以通过bindService

提供给其他应用程序

仅在您导出时。正如@Argyle所说,如果您不希望其他应用程序启动或绑定到该服务,请不要将其导出。