我有一个包含 Android Application 类子类的库。子类包含启动服务的方法(也包含在库项目中)。
当我在主机应用程序中包含该库时, Activity 管理器提示它无法启动服务 Intent (未找到)。
代码结构为:
库 list :
<service name="com.my.project.MyService" />
库中的应用程序子类:
Intent intent = new Intent(this, MyService.class);
startService(intent);
我可以通过在主机应用程序 list 中再次定义服务来解决这个问题;但是,我不想将此要求强加给使用该库的开发人员。
我的问题是,我能否避免在主机 list 中引用库服务的要求?
最佳答案
值得一提的是,虽然它不会影响您当前的实现(如果我没看错的话),但应该注意将哪个 Context
传递给 Intent
构造函数。
例如,如果您决定将您的Service
移动到单独的 APK,则该服务将不会在客户端应用程序 Context
中找到。
然后您可以使用替代的 Intent
构造函数:
Intent intent = new Intent("com.my.service.project", "com.my.service.project.MyService");
或者将 BroadcastReceiver
添加到 com.my.service.project
项目,然后由 sendBroadcast
从客户端应用程序触发startService
的。
关于android - 是否可以在库 list 中定义服务而不在主机 list 中定义它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10498373/