2010-12-30 4 views
5

hi Когда мое приложение получает ACTION_BOOT_COMPLETED, он запускает службу. Я хотел бы отложить это для let say 60sec. Могу ли я сделать это в:Приложение для Android Как отсрочить запуск службы при загрузке телефона

public class StartAtBootServiceReceiver extends BroadcastReceiver 
{ 

     public void onReceive(Context context, Intent intent) 
     { 
      // Delay...60sec 
     } 
} 
+0

Вы можете, я позволю вам. –

ответ

4

использования Timer() и TimerTask():

 Timer timer = new Timer(); 
     timer.schedule(new TimerTask() { 
      @Override 
      public void run() { 
       //run your service 
      } 
     }, 60000); 
+0

спасибо, попробуем это, также Прашаст говорит о AlarmManager. Что лучше? – Erik

+0

для такой простой задержки AlarmManager - это накладные расходы. Он используется в более сложных случаях. –

+0

Android docs заявляют, что «есть время в 10 секунд, которое система разрешает, прежде чем рассматривать приемник, который будет заблокирован, и кандидата, которого нужно убить». Следовательно, использование таймера onReceive может быть ненадежным. Я бы пошел с AlarmManager! – wrygiel

2

Когда вы получаете намерение BOOT_COMPLETED вы должны использовать AlarmManager для установки в ожидании намерения, что будет срабатывать в течение 60 секунд.

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