para - manual de programacion android pdf
Manera simple de actualizar Widget TextView periódicamente (3)
Tengo un widget con dos TextView que muestra la hora y la fecha.
Simplemente quiero que este lote de código suceda cada segundo:
views.setOnClickPendingIntent(R.id.rl, pendingIntent);
java.util.Date noteTS = Calendar.getInstance().getTime();
String time = "kk:mm";
String date = "dd MMMMM yyyy";
views.setTextViewText(R.id.tvTime, DateFormat.format(time, noteTS));
views.setTextViewText(R.id.tvDate, DateFormat.format(date, noteTS));
Así que necesito una manera simple de actualizar TextView periódicamente en el widget para que el tiempo cambie más que los 30 minutos estándar. Gracias
Otra posibilidad sería el uso de las clases Timer y TimerTask . Puede usar el Timer.schedule(TimerTask task, long delay, long period)
para lograr lo que necesita.
Tenga en cuenta que no puede acceder al hilo de UI desde un TimerTask, por lo que el método Handler.postDelayed()
podría ser una mejor Handler.postDelayed()
si ya tiene la intención de utilizar un Handler
con la clase Timer
. Existen otros métodos para acceder al hilo de la interfaz de usuario con TimerTask
, como Activity.runOnUiThread()
.
puede crear Handler
y Runnable
, y luego dejar que Handler
reinicie su Runnable
en el intervalo especificado. su programa podría verse así:
private Handler mHandler = new Handler();
@Override
public void onResume() {
super.onResume();
mHandler.removeCallbacks(mUpdateClockTask);
mHandler.postDelayed(mUpdateCLockTask, 100);
}
@Override
public void onPause() {
super.onPause();
mHandler.removeCallbacks(mUpdateClockTask);
}
private Runnable mUpdateClockTask = new Runnable() {
public void run() {
updateClock();
mHandler.postDelayed(mUpdateClockTask, 1000);
}
};
y dentro de updateClock()
haces todas tus actualizaciones de UI. Supongo que todo esto sucede dentro de la Activity
con las onPause()/onResume()
apropiadas.
tiene que usar AlarmManager, consulte este tutorial para obtener más información: http://www.vogella.com/articles/AndroidWidgets/article.html#widget_update no se olvide de revisar esta parte:
8. Tutorial: actualizar el widget a través de un servicio