无法在 android 图书馆中启动私人服务

unable to start a private service in an android library

我想开发一个 android 库,里面有一个隐藏的启动服务,使用该库的应用程序开发人员不应该看到它。

我的问题是我要么可以隐藏服务,要么可以启动服务。

要为应用程序开发人员隐藏 class,我只能通过在 class MyService extends Service {...} 之前省略 "public" 找到方法,所以我只能在库的同一个包中获得一个实例。

要通过 startService(new Intent(context, MyService.class)) 启动服务,需要在我的库清单中声明它。

但是如果服务 class 不是 public,编译器会说

'com.mydomain.MyService' is not public

我有什么想法可以实现服务的隐藏存在吗?

I would like to develop an android library with a hidden started service inside that should not be seen by the app developer that is using the library.

如果 "service" 是指 Service 的子类,通过 <service> 在清单中注册,这是不可能的。 Service 需要是 public,带有 public 零参数构造函数。它还需要清单中的 <service> 元素。应用程序开发人员可以通过检查您的库或检查构建输出来查看所有这些内容。这很重要,因为应用程序开发人员负责应用程序,包括应用程序中的所有内容,包括您的图书馆及其服务。