我的Android服务无法启动

时间:2013-01-02 15:32:32

标签: android android-intent service android-manifest

我的服务无法启动。

我在我的服务中使用了以下onCreate方法:

public void onCreate(Bundle savedInstanceState){

        wsConnection = new WSConnection();
        handler = new Handler();
        Bundle b = savedInstanceState;
        this.dbManager = b.getParcelable("object");

        super.onCreate();
        Log.i("prova","servizio attivato");
        TimerTask task = new TimerTask(){
            public void run(){


                FindPendingData();
            }

        };
        timer = new Timer();
        //timer.schedule(task, cal.getTime());
        timer.schedule(task, 0, 30000);
    }

while,以下代码启动我的服务:

        Intent intent = new Intent(this, myService.class);
        intent.putExtra("object", myObject);
        startService(intent);

对象扩展Object并实现Parcelable

我也在Manifest中声明:

<service android:name="myPackage.myService" /> 

知道问题可能在哪里?

编辑:我尝试删除Bundle参数,现在服务启动了!但我不明白为什么!有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

使用onStartCommand(Intent, int, int)onStart()而非onCreate of Service将Intent数据作为:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
      // get intent data here
    return START_STICKY;
}

如评论OP所说:

  

没有错误。我总是使用这段代码来启动服务   这很好用

但如果我们在文档onCreate()中看到,如果您要覆盖它,则不会采用任何参数