我遇到了一个服务,在startService()发送的起始意图中使用它的显式组件名称无法找到该服务。 这些类在同一个项目和包中。显式服务调用及其组件名称是有意的,因为它应该是私有服务,而startService / stopService方法而不是bindService也是故意的,因为服务应该在后台运行而不与任何活动通信。 一定是个愚蠢的错误,但我花了2天时间寻找它,但没有运气。我还有一个其他项目,它使用相同的服务调用方法,它可以工作,比较两次多次,但没有真正的区别。 我可能做错了什么?
//main activity which controls the service
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...
Intent intent = new Intent(this, Logger01Service.class);
startService(intent);
//...
}
调试器日志中的错误:
11-23 11:07:28.711: WARN/ActivityManager(1279): Unable to start service Intent { cmp=com.biroalex.test.logger/.LoggerService }: not found
我可能做错了什么?
答案 0 :(得分:1)
您是否在AndroidManifest.xml中声明了它? 来自http://developer.android.com/reference/android/app/Service.html:
每个服务类必须有一个 相应的声明 在其包的AndroidManifest.xml
中
答案 1 :(得分:0)
您必须在AndroidManifest.xml中输入关于每个活动或服务的条目。我想你错过了这个。看看吧。
答案 2 :(得分:0)
API DEMO清单文件的示例:
<service android:name=".app.ForegroundService" />