¿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?

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.

  • Notificación RemoteView en el oyente de clics
  • ¿Cómo detener / cancelar el administrador de alarmas en otra actividad?
  • Servicio enlazado a BroadcastReceiver
  • El proceso del servicio se cancela después de que la aplicación se elimina de la bandeja de aplicaciones
  • Android: ¿Cómo solucionar la falla de la conexión de la API de Google desde un servicio?
  • Espere con la operación hasta que se creen Vistas de fragmentos
  • Servicio de detector de balizas de estimación en segundo plano
  • ¿Pueden los servicios iniciados y enlazados vivir "para siempre"?
  • Android Fatal señal 11 (SIGSEGV) en 0x636f7d89 (código = 1). ¿Cómo se puede localizar?
  • ¿Por qué otro servicio encima de IMarketBillingService?
  • Android: Detener / iniciar servicio creado en onCreate ()
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.