服务没有开始

时间:2011-06-16 21:25:48

标签: android service

我正在写第一份服务。我的活动效果很好,但是当我打电话给我的服务时,却没有。

看起来onCreate()没有被调用。

我的服务代码:

public class NeglectedService extends Service {
    public static final String MY_SERVICE = "android.intent.action.MAIN";
    public void onCreate() {
        Toast.makeText(this, "Service onCreate...", Toast.LENGTH_LONG).show();
    }
}

我甚至没有收到Toast的消息。

这是我的活动

startService(new Intent(NeglectedService.MY_SERVICE));

我的清单

action android:name="android.intent.action.MAIN"

3 个答案:

答案 0 :(得分:8)

您输入了类似

的内容吗?
<service android:name=".subpackagename.ServiceName"/>

进入你的Android Manifest xml文件?

答案 1 :(得分:4)

看到NeglectedService.MY_SERVICE只是一个字符串,在startService来电中,您实际上是在呼叫:

startService(new Intent("android.intent.action.MAIN"));

显然,对您的特定服务没有任何参考,并且不是您想要的。相反,要么为特定的意图过滤器注册服务并将其包括在您的意图中,要么按类调用它:

startService(new Intent(this, NeglectedService.class));

答案 2 :(得分:1)

使用显式意图调用您的服务,而不是使用隐式操作字符串,无论如何它应该更加独特。换句话说,请在您的活动代码中使用它:

startService( new Intent(this, NeglectedService.class) );

希望有所帮助!