Ho un servizio che invia un Intento alla mia attività ogni 0,1 secondi. Lo uso per aggiornare un'implementazione personalizzata di un cronometro. Qui tutto va bene. Il problema arriva quando voglio aggiornare 14 TextView che ho in un TableView all'interno di un frammento nella mia attività. Qui l'app è molto lenta.Multiple TextViews si aggiornano molto lentamente
Il metodo nella mia attività in cui riceve l'intento da parte del Servizio:
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
long milis = intent.getLongExtra("milis",0);
if(mFragment != null)
mFragment.Update(milis);
}
};
il codice all'interno del frammento in cui posso aggiornare le TextViews:
public void actualizarTiempoJuego(long milis){
// Se recuperan los tiempos acumulados y se aumenta la cantidad pasada como parámetro
for(int i=0;i<7;++i) {
long mCurrentMilis1 = mVectorMilis1.get(i);
long mCurrentMilis2 = mVectorMilis2.get(i);
TextView1 t1 = mListaTitularLayoutLocal.get(i);
TextView1 t2 = mListaTitularLayoutVisitante.get(i);
t1.setText(String.value(milis + mCurrentMilis1));
t2.setText(String.value(milis + mCurrentMilis2));
}
}
sto facendo qualcosa di sbagliato, o è solo che sto cercando di fare qualcosa di molto complesso in termini di efficienza?
vorrei creare una stringa da 'Milis 'e usalo 14 volte, invece di provare a creare 14 stringhe identiche. E poi usa gli strumenti Android per verificare se uno standard per il ciclo, un ciclo per ogni ciclo o l'utilizzo di Iterator fornisce i risultati più rapidi. – Sam
@ Sam. Questa è una versione leggera. Ho copiato qui così per renderlo più facile da capire. Lo modifico per renderlo più completo. – gutiory
C'è più informazioni che vorresti per accettare una risposta ?? –