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:
e il MyTimer: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);
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...).codice:public void run() { t.setToNow(); modTxt(R.id.TxtGG, "sec: " + String.valueOf(t.second)); }
Grazie per il consueto aiuto![]()

LinkBack URL
About LinkBacks
Rispondi quotando
