Android应用程序挂起启动服务

时间:2014-11-19 18:05:28

标签: android android-intentservice

我正在尝试创建一个简单的服务。

这是服务来源

public class UploadService extends IntentService {

    public UploadService(String name) {
        super(name);
        // TODO Auto-generated constructor stub
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId){
        Toast.makeText(this, "service starting", Toast.LENGTH_SHORT).show();
        return super.onStartCommand(intent, flags, startId);
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        // TODO Auto-generated method stub
        Toast.makeText(this, "handling intent", Toast.LENGTH_SHORT).show();
    }

这是清单

中服务的定义
<service 
    android:enabled="true" 
    android:name="com.sopla.Services.UploadService">
</service>

这是我用于在程序启动时调用的主Activity的onCreate方法启动服务的代码

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Intent intent = new Intent(this,
            com.sopla.Services.UploadService.class);
    startService(intent);

我可以调试所有onCreate方法,但在此之后程序挂起,我无法访问服务源代码中的断点。

我错过了什么? 谢谢,   卢卡

2 个答案:

答案 0 :(得分:0)

尝试使用onStartCommand:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    TODO do something useful
    return Service.START_NOT_STICKY;
}

答案 1 :(得分:0)

感谢每一个人,但更好地检查logcat我发现了问题 出于某些奇怪的原因,要求Ide添加缺少的IntentService成员,添加一个带字符串的构造函数,但在运行时没有需要构造函数。 从costructor中删除字符串参数解决了这个问题。