我想启动服务使用Activity。具体来说,它是IntentService。但我有两个问题:
启动我的代码时
private void switchService(boolean isEnable, String serviceName){
Intent intent = new Intent();
intent.setClassName(TestPhoneServiceActivity.this, serviceName);
if(isEnable){
startService(intent);
}
else{
if(isServiceRunning(serviceName)){
stopService(intent);
while(isServiceRunning(serviceName)){
}
Toast.makeText(this, "Service stopped Successfully!", Toast.LENGTH_LONG).show();
}
}
}
DDMS有错误:Unable to start service Intent { cmp=com.xx.android/.AndroidPhoneService }: not found
但道路是正确的。那么问题是什么呢?我也想调用一个系统服务。我应该把它写入配置文件吗?
然后我启动IntentService使用intent.setClass。
ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE)
我找不到这个服务对象。 IntentService是自动完成和销毁的吗?IntentService的生命周期与其他服务不同?
答案 0 :(得分:0)
您应该传递服务的类而不是服务类的名称,如此
Intent intent = new Intent();
intent.setClassName(TestPhoneServiceActivity.this, MyIntentService.class);
if(isEnable){
startService(intent);
}
意图服务在工作完成后自行停止,如果你启动多个相同的意向服务,它将排在后面并按顺序执行,所以else块在你的情况下是多余的。
并确保您已在清单中声明了服务。