¿Cómo iniciar el servicio con Alarm Manager en Android?

En mi aplicación, estoy tratando de iniciar un servicio con el administrador de alarmas. Cuando estoy haciendo clic en un botón de servicio debe comenzar en un momento particular que estoy dando. Mi código para Administrador de alarmas se da a continuación:

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(); } } 

Y abajo está mi clase de servicio:

  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"); } } 

Si el servicio se inicia, debe imprimir los mensajes de registro en la clase de servicio. Pero no está mostrando. ¿Alguien puede ayudar?

2 Solutions collect form web for “¿Cómo iniciar el servicio con Alarm Manager en Android?”

Esto es lo que he utilizado, para iniciar el servicio después de 30 segundos de la hora actual,

 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); 

Pruébalo y házmelo saber lo que sucederá …

EDITAR:

En el archivo manifest.xml

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

Sé que esto es una vieja pregunta, pero apenas para ayudar a la gente de google, aquí es cómo usted puede mantener su servicio vivo.

  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); 

El servicio se cancela y reinicia cada 5 segundos.

  • Establecer un Listener en una clase basada en servicio
  • Android: ¿Cómo puedo mostrar un brindis desde un hilo que se ejecuta en un servicio remoto?
  • ServiceConnectionLeaked en Android
  • Asegúrese de que mi código es seguro para hilos
  • Android Service no se inicia
  • Aplicación de Android como servicio sin actividad
  • Descargar varios archivos con una barra de progreso en ListView Android
  • Implementación de un grupo de subprocesos dentro de un servicio
  • Cómo cancelar un servicio de primer plano de usar la notificación (borrar descartar) o borrar todas las notificaciones?
  • Escuchar permanentemente los cambios en el portapapeles
  • ¿Puedo llamar a stopSelf () en Service.onStartCommand?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.