La alarma repetida no es exacta
Hice una aplicación que tiene un selector de números que van desde 1 a 60 minutos, y lo conecté a un administrador de alarmas repetidas. Cuando lo intenté, me di cuenta de que no es exacta a veces, ya sea toma más minutos para trabajar o menos.
¿Cual podría ser el problema?
- Ajustar a las carreteras Android
- La selección de proyectos en configuraciones de ejecución en Eclipse está vacía
- Qué es stringentity en android y su uso
- Obtener recursos de WebView que ya se ha descargado
- Obtener archivos de formato .mp3 desde el dispositivo Android
Para el botón de inicio:
startB.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if (startB.isChecked()) { Calendar calSet = Calendar.getInstance(); calSet.set(Calendar.MINUTE, picker2.getValue()); calSet.set(Calendar.SECOND, 0); calSet.set(Calendar.MILLISECOND, 0); setAlarm(calSet); SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit(); editor.putBoolean("toggleButton", startB.isChecked()); editor.commit(); timerHasStarted = true; } else { Intent intent = new Intent(getBaseContext(), MainReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0); AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); alarmManager.cancel(pendingIntent); SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit(); editor.putBoolean("toggleButton", startB.isChecked()); editor.commit(); timerHasStarted = false; } } });
Para la alarma:
private void setAlarm(Calendar targetCal ) { // TODO Auto-generated method stub Intent intent = new Intent(getBaseContext(), MainReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0); AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), TimeUnit.MINUTES.toMillis(picker2.getValue()), pendingIntent); }
Receptor:
@Override public void onReceive(Context context, Intent intent) { MediaPlayer m=MediaPlayer.create(context, R.raw.sound); m.start(); }
- Redes Android
- ¿Es una buena práctica de programación usar campos estáticos de importación?
- Cómo generar un entero con los métodos de TextView?
- Hilo de Java checkAccess
- Dos animaciones con 1 segundo de retraso entre
- Firebase android proxy setting
- ¿Qué significa 'ICU' en Android SDK?
- Android RandomAccessFile uso del recurso
El sistema operativo Android puede cambiar las alarmas para minimizar los despertares y el consumo de la batería (desde la API 19). Echa un vistazo aquí . Noté retrasos de hasta unos segundos.
Un bonito tutorial sobre las alarmas en general se puede encontrar aquí
- MaxLength de TEdit no funciona en Android con DELPHI XE7 (actualización 1)
- Branch.io deeplink en android abre Play Store incluso cuando la aplicación está instalada