启动服务使用活动

时间:2012-11-20 08:34:08

标签: android android-intent android-activity android-service

我想启动服务使用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的生命周期与其他服务不同?

1 个答案:

答案 0 :(得分:0)

您应该传递服务的类而不是服务类的名称,如此

    Intent intent = new Intent();
    intent.setClassName(TestPhoneServiceActivity.this, MyIntentService.class);
    if(isEnable){
        startService(intent);
    }

意图服务在工作完成后自行停止,如果你启动多个相同的意向服务,它将排在后面并按顺序执行,所以else块在你的情况下是多余的。

并确保您已在清单中声明了服务。