Configuración de la alarma en base mensual android
Estoy desarrollando una aplicación de Android para establecer la alarma en base diaria, semanal, mensual. Los dos primeros están funcionando bien convirtiendo la fecha y la hora de dar en milliseonds. Pero cuando estoy tratando de hacer lo mismo por mes no funciona. Hay un formato de fecha totalmente diferente.
Lo estoy fijando como abajo,
- Android - calcular el ángulo del arco
- Latitud / Longitud y metros
- Determine el ángulo de visión de la cámara del teléfono inteligente
- ¿Debo confiar en Android para descartar los sorteos fuera de pantalla?
- Convertir valores de ReplayGain a ajustes de volumen
Alarmtimefor30 tiene la fecha dada en milisegundos.
am.setRepeating(AlarmManager.RTC_WAKEUP, alarmTimefor30, 30*1440*60000 , pi);
Estoy dando intervalMillis como 30 * 1440 * 60000 que los resultados a 2592000000 es decir 30 días en milisegundos. Cuando intento imprimir 30 * 1440 * 60000 resulta a 1702967296. No estoy seguro de cuál podría ser el problema.
¿Existe otra manera de configurar la alarma mensual (para activar en fecha y hora específicas cada mes)?
¡Gracias por favor!
- Mover la mano Minuto en el reloj de Android
- Android: ¿Cómo obtener sólo dos dígitos después del punto en el valor decimal? no quiere trunc el valor
- La mejor práctica para calcular la velocidad media de las coordenadas GPS
- Obtener los siguientes N puntos geográficos más cercanos
- Fórmulas matemáticas en textview en android
- Almacene la orientación en una matriz y compare
- Mostrar una buena fórmula de matemáticas en Android
- 1000 * 60 * 60 * 24 * 30 resultados en un número negativo
De forma predeterminada, un literal entero en Java será del tipo int
, que es un número de 32 bits. Cuando se multiplica un int
por un int
el resultado es también un int
, por lo que su resultado se está truncando. Obviamente el argumento a setRepeating
es un long
, pero eso no significa que el compilador arreglará esto para usted – su multiplicación seguirá siendo truncado.
La solución es forzar explícitamente a que los literales sean del tipo long
, que es un número de 64 bits:
am.setRepeating(AlarmManager.RTC_WAKEUP, alarmTimefor30, 30L*1440L*60000L , pi);
- Twitter Inicio de sesión Error de diálogo
- Gráfica Api no obtener ubicación de Facebook SDK en Android