2013-01-02 12 views
0

Мое обслуживание не начинается.Служба поддержки Android не началась

Я использовал следующий 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

Я также объявить в манифесте:

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

Любая идея Где проблема?

EDIT: Я попытался удалить параметр Bundle, и теперь начинается сервис! Но я не понимаю, почему! Кто-то может мне помочь?

+0

любой, как, ошибка или что-то? – njzk2

+0

Вы бы предпочли использовать onStartCommand, вот где startService заканчивается – njzk2

+0

@ njzk2 без ошибок. Я всегда использую этот код для запуска службы, и обычно это работает хорошо. – GVillani82

ответ

0

использование onStartCommand(Intent, int, int) или onStart() вместо OnCreate обслуживания для получения Intent данных как:

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

как в комментариях OP говорит:

ошибок нет. Я всегда использую этот код для запуска службы и, как правило это работает хорошо

но если мы видим в доке onCreate() не принимать какой-либо параметр, если вы отвергая его

+0

Вы правы, мой предыдущий код не включает в себя параметры для прохождения. – GVillani82

+0

Я попытался ввести код для намерения в onStartCommand, но эта ошибка возникает: для протокола Parcelable требуется Parcelable. Я использую этот код: общественности Int onStartCommand (Intent пристальный, Int флаги, внутр startId) { \t // получить данные о намерении здесь \t \t Bundle б = intent.getExtras(); \t \t this.dbManager = b.getParcelable ("object"); \t возвращение START_STICKY; \t} – GVillani82

+0

@ Joseph82: из какого класса вы создаете экземпляр myObject? –

Смежные вопросы