onCreate没有调用android服务

时间:2013-02-14 14:50:07

标签: android android-service

我想以静态方式启动服务。所以从我的活动中我打电话

SpeechActivationService.makeStartServiceIntent(
               this.getApplicationContext(),
               "WordActivator");

以下是从服务类http://dpaste.com/hold/928115/扩展的实际类。正如您所看到的,有几个日志点,例如在onCreate方法中。

未记录此内容。只有当我在makeStartServiceIntent方法中显示日志文本时,它才会出现,但不在onCreate方法中。

以下是makeStartServiceIntent方法:

public static Intent makeStartServiceIntent(Context context,
        String activationType) {        
    Intent i = new Intent(context, SpeechActivationService.class);
    i.putExtra(ACTIVATION_TYPE_INTENT_KEY, activationType);
    return i;
}

在清单文件中我有

<service android:name="root.gast.speech.activation.SpeechActivationService"/>

为什么服务没有启动的任何想法?

2 个答案:

答案 0 :(得分:10)

除了您没有发布显示startService()的代码之外,清单中Service的包名与您的SpeechActivationService类不匹配(假设代码您发布的链接是项目中的实际SpeechActivationService类,而不仅仅是您从复制的类)。

<service android:name="com.mkyong.android.SpeechActivationService"/>

答案 1 :(得分:8)

您的makeStartService()只会为您创建一个意图。您似乎并没有实际启动该服务。试试这个

Intent i = SpeechActivationService.makeStartServiceIntent(this,"WordActivator");
startService(i);

请注意,如果this.getApplicationContext()有效,您可能已经在Context个对象中,因此只需使用this 也可以。