¿Cómo obtener una diferencia de tiempo entre dos fechas en la aplicación para Android?
Estoy tratando de implementar un contador de tiempo (cuenta hasta de 0), que básicamente obtiene la variable de tiempo guardado (startTime, que se creó tan pronto como el usuario pulsó un botón) y resta la hora actual (Calendar.getInstance () tal vez? ) Para que el resultado sea la diferencia (en HH: MM: SS) entre las dos veces. Este método se ejecutará en cada marca de un cronómetro para que la vista de texto se actualizará cada segundo, creando efectivamente mi temporizador.
Ahora, tomo esta ruta de la rotonda porque es la única manera que podría figurar para conservar el tiempo transcurrido incluso si la aplicación se mata. Esto se debe a que la variable startTime se guarda en SharedPreferences tan pronto como se crea, y durante cada Tick, el sistema calcula mi temporizador en el momento de encontrar la diferencia entre startTime y la hora actual.
- Cómo convertir jpg a pdf en Android java
- Adición de objetos independientes a una RealmList
- ¿Cómo animar setVisibility para un imagebutton en Android?
- E / art: Error al enviar la respuesta al depurador: Canal roto, pero la aplicación todavía se ejecuta
- Error: no se puede encontrar la clase de símbolo RecyclerView
Ahora, he intentado hacer mi startTime una variable del calendario e inicializado como tal:
Calendar startTime = Calendar.getInstance();
y entonces
elapsedTime = startTime - Calendar.getInstance();
Pero evidentemente, esto no funciona.
En un proyecto similar, escrito en C #, pude conseguir que funcionara, aunque utilizando una variable DateTime … ¿Existe alguna manera de hacerlo en Android?
Si esto es demasiado complicado, ¿hay una mejor manera de conservar el progreso de mi cronómetro?
¡Por favor y gracias!
- ¿Hacer saltar un sprite cuando el usuario teclea en la pantalla?
- Desempeño de Android: Strings vs. Enums vs. Static Final Ints
- Java.lang.NumberFormatException: Invalid int: "5"
- ¿Es Dalvik aún más hambriento de memoria que HotSpot en términos de tamaños de objeto?
- Cerrar sesión Facebook Android SDK
- ¿Cómo uso eficazmente un bus de eventos?
- Cómo establecer la unidad para Paint.setTextSize ()
- Utilizar interfaces para constantes de espacio de nombres en Android
Utilizar SharedPreference
para almacenar la hora de inicio es exactamente correcto si tiene una única hora de inicio, aunque probablemente desee almacenar Calendar.getInstance().getTimeInMillis()
lugar del objeto en sí. A continuación, puede restaurarlo utilizando
long startMillis = mSharedPreferences.getLong(START_TIME_KEY, 0L); Calendar startTime = Calendar.getInstance(); startTime.setTimeInMillis(millis);
Calculando la diferencia es a menudo más fácil en milisegundos:
long now = System.currentTimeMillis(); long difference = now - startMillis;
A continuación, puede darle salida usando DateUtils.formatElapsedTime () :
long differenceInSeconds = difference / DateUtils.SECOND_IN_MILLIS; // formatted will be HH:MM:SS or MM:SS String formatted = DateUtils.formatElapsedTime(differenceInSeconds);
- ¿Cómo puedo insertar una comilla doble (") en el campo Varchar de la base de datos SQLite?
- Cómo obtener NoSuchMethodError con métodos TextView