无法使用startService从活动启动服务

时间:2012-05-02 15:54:02

标签: android

所有教程告诉我这样做:

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

但没有构造函数接受Activity,Class,因此我得到语法错误

http://developer.android.com/reference/android/content/Intent.html

我试图以这种方式生成服务,

startService(new Intent(getApplicationContext(), MyService.class));

但我的服务永远不会执行。

public class MyService extends IntentService {                                                                                                                                                                     

    public MyService() {                                                                                                                                                                                           
        super("MyService");                                                                                                                                                                                        
    }                                                                                                                                                                                                                  

    @Override                                                                                                                                                                                                          
    protected void onHandleIntent(Intent intent) {                                                                                                                                                                     
        //do stuff                                                                                                                                                                                                     
    }                                                                                                                                                                                                                  

}  

我如何产生服务?

答案:我的android清单没有指定包

2 个答案:

答案 0 :(得分:2)

此处添加了实际问题(在评论中找到):

该服务位于不同的包中,因此在清单中,它必须是完全合格的,例如<service android:name="actual.package.of.MyService"/>

旧答案:

  1. 如果您尝试在内部类中启动该服务,则不应编写:

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

    可是:

    startService(new Intent(ActivityName.this, MyService.class));
    
  2. 确保您的服务显示在清单中。

  3. onHandleIntent内添加调试打印,以查看是否启动。

答案 1 :(得分:0)

服务不可见

可能您尚未在清单文件中声明该服务。

我不认为代码有任何问题。 覆盖onstartCommand和oncreate方法,只需输入一个日志语句并检查logcat