Android – come impostare un allarme a una data specifica

Ho visto un sacco di tutorial e ho provato 2 ore, anche se qualcosa è ancora sbagliato. Sono molto nervoso adesso 🙂 Voglio impostare un allarme per esempio a 16:25 per andare via, ma non succede niente. Ho questo codice:

Calendar cur_cal = new GregorianCalendar(); cur_cal.setTimeInMillis(System.currentTimeMillis()); Calendar cal = new GregorianCalendar(); cal.add(Calendar.DAY_OF_YEAR, cur_cal.get(Calendar.DAY_OF_YEAR)); cal.set(Calendar.HOUR_OF_DAY, 16); cal.set(Calendar.MINUTE, 25); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND, 0); alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent); 

Ho anche provato questo:

  • ionico 2: Come posso get messaggi di console dal dispositivo android
  • rendere un IntentService non dorme finché non esegue un handler.postDelayed runnable
  • Android: Edittext- get la row corrente
  • Ionici build Android. errore: Nessun strumento di build installato trovato. Installare gli strumenti di build di Android
  • La miniatura non compila come aspetto
  • Utilizzando GPS ottieni la distanza che una persona ha camminato
  •   cal.set(Calendar.AM_PM, cur_cal.get(Calendar.AM_PM)); cal.set(Calendar.HOUR, 4); 

    Il mio objective finale è quello di renderlo un allarme ripetuto, per esempio dovrebbe andare via each giorno all'ora impostata.

    Aggiornamento 01.17.2011. Continua a non funzionare. Ho questo codice:

      Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, 2011); cal.set(Calendar.MONTH, Calendar.JANUARY); cal.set(Calendar.DAY_OF_MONTH, 17); cal.set(Calendar.HOUR_OF_DAY, 16); cal.set(Calendar.MINUTE, 58); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND, 0); 

    Ho anche provato questo:

      cal.set(Calendar.HOUR, 4); cal.set(Calendar.AM_PM, Calendar.PM); 

    e questo:

     cal.set(Calendar.HOUR_OF_DAY, 4 ); cal.set(Calendar.AM_PM, Calendar.PM); 

  • Disegno di Android: servizio in esecuzione a lungo termine o AlarmManager?
  • Avviare Android Service dopo each 5 minuti
  • La pausa di servizio si blocca sullo schermo
  • voglio submit aggiornamenti di posizione each 15 minuti al server anche quando l'applicazione non è in esecuzione in primo piano
  • Devo utilizzare PendingIntent.getService () o getBroadcast con AlarmManager?
  • Hai bisogno di un esempio di codice su come eseguire un servizio Android per sempre in background anche quando il dispositivo è dormito, come Whatsapp?
  • 4 Solutions collect form web for “Android – come impostare un allarme a una data specifica”

     package your.pack.name; import java.util.Calendar; import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Bundle; public class AlarmActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(System.currentTimeMillis()); cal.clear(); cal.set(2012,2,8,18,16); AlarmManager alarmMgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(this, AlarmReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0); // cal.add(Calendar.SECOND, 5); alarmMgr.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent); } } 

    Di solito non si dovrebbe get il Calendar come fai, esiste il metodo Calendar.getInstance() per questo:

     Calendar cal = Calendar.getInstance(); 

    Questo ti dà un calendario con tutti i campi impostati alla data corrente, quindi solo:

     cal.set(Calendar.HOUR_OF_DAY, 16); cal.set(Calendar.MINUTE, 25); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND, 0); alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent); 

    Il seguente codice funziona perfettamente per l'allarme. La data e l'ora che ho citato qui sono: 2012- 28 giugno, ore 11.20.00. E la cosa più importnte è che il mese è specificato solo da 0 t0 11. I mezzi giugno devono essere specificati da 5.

      AlarmManager objAlarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); Calendar objCalendar = Calendar.getInstance(); objCalendar.set(Calendar.YEAR, 2012); //objCalendar.set(Calendar.YEAR, objCalendar.get(Calendar.YEAR)); objCalendar.set(Calendar.MONTH, 5); objCalendar.set(Calendar.DAY_OF_MONTH, 28); objCalendar.set(Calendar.HOUR_OF_DAY, 11); objCalendar.set(Calendar.MINUTE, 20); objCalendar.set(Calendar.SECOND, 0); objCalendar.set(Calendar.MILLISECOND, 0); objCalendar.set(Calendar.AM_PM, Calendar.AM); Intent alamShowIntent = new Intent(this,AlarmActivity.class); PendingIntent alarmPendingIntent = PendingIntent.getActivity(this, 0,alamShowIntent,0 ); objAlarmManager.set(AlarmManager.RTC_WAKEUP,objCalendar.getTimeInMillis(), alarmPendingIntent); 

    Imansible impostare l'anno nell'object Calendar .

    Inoltre, si noti che il new GregorianCalendar() già imposta il valore alla data e all'ora correnti.

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