Come avviare il servizio utilizzando Alarm Manager in Android?

Nella mia applicazione, cerco di avviare un servizio utilizzando Gestione allarmi. Quando faccio clic su un button, il servizio dovrebbe iniziare in un momento particolare che sto dando. Il mio codice per Alarm Manager è riportto di seguito:

public void onClick(View view) { if(view == m_btnActivate) { Calendar cur_cal = Calendar.getInstance(); cur_cal.setTimeInMillis(System.currentTimeMillis()); cur_cal.add(Calendar.SECOND, 50); Log.d("Testing", "Calender Set time:"+cur_cal.getTime()); Intent intent = new Intent(DashboardScreen.this, ServiceClass.class); Log.d("Testing", "Intent created"); PendingIntent pi = PendingIntent.getService(DashboardScreen.this, 0, intent, 0); AlarmManager alarm_manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); alarm_manager.set(AlarmManager.RTC, cur_cal.getTimeInMillis(), pi); Log.d("Testing", "alarm manager set"); Toast.makeText(this, "ServiceClass.onCreate()", Toast.LENGTH_LONG).show(); } } 

E sotto la mia class di servizio:

  • Come determinare la posizione del dispositivo in Android utilizzando l'indirizzo IP
  • submit un audio multicast in rtsp utilizzando libstreaming per l'upstreaming da un dispositivo android
  • In Android, posso utilizzare l'image dalle risorse in formato xml?
  • Android ListActivity onListItemClick chiama l'adattatore getView
  • Convalida XMLSchema su Android
  • Possono due diversi dispositivi avere lo stesso ID di logging GCM?
  •   public class ServiceClass extends Service{ @Override public void onCreate() { // TODO Auto-generated method stub super.onCreate(); Log.d("Testing", "Service got created"); Toast.makeText(this, "ServiceClass.onCreate()", Toast.LENGTH_LONG).show(); } @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } @Override public void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); } @Override public void onStart(Intent intent, int startId) { // TODO Auto-generated method stub super.onStart(intent, startId); Toast.makeText(this, "ServiceClass.onStart()", Toast.LENGTH_LONG).show(); Log.d("Testing", "Service got started"); } } 

    Se il servizio verrà avviato dovrebbe printingre i messaggi di registro nella class di servizio. Ma non sta mostrando. Qualcuno può aiutare?

  • Carica la libreria condivisa nativa da un'altra applicazione Android
  • Aggiunta di righe di tabelle dinamiche in Android
  • Errore di Google GCM non registrato di Google
  • errore tipo di exception non gestito
  • Perché tanti GC_FOR_ALLOC in una semplice applicazione?
  • Come visualizzare un path personalizzato su SKmap
  • 2 Solutions collect form web for “Come avviare il servizio utilizzando Alarm Manager in Android?”

    Questo è quello che ho usato, per avviare il servizio dopo 30 secondi dall'ora corrente,

     Intent intent = new Intent(DashboardScreen.this, ServiceClass.class); PendingIntent pintent = PendingIntent.getService(DashboardScreen.this, 0, intent, 0); AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE); alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 30*1000, pintent); 

    Provalo, e fammi sapere cosa succede …

    EDIT:

    Nel file manifest.xml

      <service android:enabled="true" android:name=".ServiceClass" /> 

    So che questa è una vecchia domanda, ma solo per aiutare le persone da google, ecco come puoi mantenere vivo il servizio.

      Intent ishintent = new Intent(this, HeartBeat.class); PendingIntent pintent = PendingIntent.getService(this, 0, ishintent, 0); AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE); alarm.cancel(pintent); alarm.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),5000, pintent); 

    Il servizio viene ucciso e riavviato each 5 secondi.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.