0

我的服务没有启动。

我在我的服务中使用了以下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);
    }

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

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

对象扩展Object和实现Parcelable

我还在 Manifest 中声明:

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

知道问题可能出在哪里吗?

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

4

1 回答 1

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 所说:

没有错误。我总是使用此代码来启动服务,通常效果很好

但是如果我们在 doc onCreate()中看到, 如果您要覆盖它,则不要使用任何参数

于 2013-01-02T15:40:58.950 回答