是否可以在Android中创建服务,无法通过startService调用以编程方式启动?我的意思是,具有此服务的应用程序和服务本身应仅由用户显式启动,并且只有在服务已经启动的情况下才能通过bindService访问。
答案 0 :(得分:1)
startService
无法启动?怎么开始呢?
我怀疑你想要的是确保只有你自己的应用程序可以启动它,而不是任何外部非你写的应用程序。如果是这种情况,请设置
android:exported="false"
,在AndroidManifest.xml
文件中,您希望以这种方式保护每个Service
。
答案 1 :(得分:1)
是否可以在Android中创建服务,无法通过startService调用以编程方式启动?
不是真的。您可能会从stopSelf()
拨打onStartCommand()
,但我从未尝试过,可能会导致意外问题。
服务本身应仅由用户明确启动
Android中的用户无法直接启动服务,只能通过某些应用程序启动服务,例如您自己的应用。
并且只能通过bindService
访问
您无法阻止拨打startService()
。如果您的服务未导出,则其他应用程序将无法启动或绑定到该服务。
如果它已经启动,它可以通过bindService
提供给其他应用程序
仅在您导出时。正如@Argyle所说,如果您不希望其他应用程序启动或绑定到该服务,请不要将其导出。