是否可以在 Android 中创建无法通过 startService 调用以编程方式启动的服务?我的意思是,具有此服务的应用程序和服务本身应该仅由用户显式启动,并且应该只能通过 bindService 访问,以防该服务已经启动。
问问题
1058 次
2 回答
1
无法启动startService
?否则将如何启动?
我怀疑您想要的是确保只有您自己的应用程序可以启动它,而不是任何外部非您编写的应用程序。如果是这种情况,请设置
android:exported="false"
在您想要以这种方式保护AndroidManifest.xml
的每个文件中。Service
于 2012-09-10T19:26:16.527 回答
1
是否可以在 Android 中创建无法通过 startService 调用以编程方式启动的服务?
并不真地。您大概可以stopSelf()
从调用onStartCommand()
,尽管我从未尝试过,它可能会导致意想不到的问题。
服务本身应仅由用户显式启动
Android中的用户无法直接启动服务,只能通过某些应用程序,例如您自己的应用程序。
并且只能通过 bindService 访问
您无法阻止对 的调用startService()
。如果您的服务未导出,其他应用程序将无法启动或绑定到它。
如果它启动了,它可以通过 bindService 提供给其他应用程序
仅当您将其导出时。正如@Argyle 所指出的,如果您不希望其他应用程序启动或绑定到该服务,请不要导出它。
于 2012-09-10T19:47:52.077 回答