Salve,
scrivo perchè nella mia applicazione ho un problema di aggiornamento del mio widget: leggendo le guide in internet ho visto che se pur un po' vecchia scuola, è consigliabile usare il metodo java dei timer per aggiornare il proprio widget (a meno che non sia una cosa pesante, ma nel mio caso è un piccolo metodo): così creo il TimerTask, gli faccio avviare il MyTimer ogni secondo, e dentro il run() del MyTimer ci metto un timer che mi aggiorni una label con i secondi attuali di sistema. Ora, tutto va bene fin che sto li a guardare, ma quando cambio schermata per qualuque motivo (standby, apro altra applicazione, mi sposto nella schermata vicina...) il timer si pianta e non si avvia più. Ecco il codice:
codice:
WidgetProvider.java
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
super.onUpdate(_ctx, _appWM, appWidgetIds);
init(context, appWidgetManager);
Timer t = new Timer();
t.scheduleAtFixedRate(new MyTimer(Pref_file, _path_value, context, appWidgetManager), 100, 1000);
setResultCode(Activity.RESULT_OK);
e il MyTimer:
codice:
public void run() {
t.setToNow();
modTxt(R.id.TxtGG, "sec: " + String.valueOf(t.second));
}
Idee? Soluzioni? L'unica è usare il metodo più complesso per aggiornare il widget (intercettando gli eventi di sistema)? O ci sono accortezze per continuare a far girare il timer (magari metterlo su un suo thread...).
Grazie per il consueto aiuto