Italian B4A B4XLoadingIndicator non mi funziona

3394509365

Active Member
Licensed User
Longtime User
Ho scritto qualche riga di codice per simulare cosa fa la mia app.

Vorrei che nell' attesa che si svolgono le operazioni di calcolo ci sia in primo piano un B4XLoadingIndicator.

Ho seguito le indicazioni dei vari forum ma si vede solo all' inizio e poi sparosce durante le fasi di calcolo.

Ho allegato il facsimile del programma. dove si vede che non funziona a dovere
 

Attachments

  • prova B4XLoadingIndicator.zip
    10.3 KB · Views: 185

Star-Dust

Expert
Licensed User
Longtime User
Partiamo dal primo presupposto. Il loading deve stare sempre acceso (Show) , si spegne solo quando l'App va in pausa. Per visualizzarlo o farlo sparire, si attacca su un pannello e si cambia la proprietà Visible.

Seconda cosa. Per ottenere la rotazione del loading, bisogna usare le resumable sub che permettono al sistema di liberare le risorse (che sono impegnate in un ciclo for che blocca tutto) e far animare il Loading.
Questo porta alla terza cosa. I calcoli non possono stare in un modulo di codice, ma in una classe o in un Servizio (come il Servizio Starter) che può gestire le ResumableSub.
Ultima cosa, il tutto si rallenta perchè man mano che fa i calcoli rinfresca la UI e quindi i tempi aumentano tantissimo
 

Attachments

  • prova B4XLoadingIndicator.zip
    10.4 KB · Views: 184
Last edited:

3394509365

Active Member
Licensed User
Longtime User
grazie,

lo sto analizzando. ancora sta girando..

devo cambiare sistema. probabilmente, troppo lento.

:mad:

io, pensavo fosse un trhead che lavorava per conto suo.
 
Last edited:

Star-Dust

Expert
Licensed User
Longtime User
grazie,

lo sto analizzando. ancora sta girando..

devo cambiare sistema. probabilmente, troppo lento.

:mad:
togli i log e andrà più veloce
 

Star-Dust

Expert
Licensed User
Longtime User
io, pensavo fosse un trhead che lavorava per conto suo.
Sembra cosi dagli esempi, ma gli esempi usano (ad esempio) okHttpUtils che lavorano in maniera asincrona (anche con le resunablesub) e quindi le UI vengono rinfrescate.

L'animazione avviene se le funzioni sono asincrone, quella che hai nell'esempio non è asincrona. Io l'ho resa asincrone con lo sleep(0) e wait for
 

Star-Dust

Expert
Licensed User
Longtime User
Partiamo dal primo presupposto. Il loading deve stare sempre acceso (Show) , si spegne solo quando l'App va in pausa. Per visualizzarlo o farlo sparire, si attacca su un pannello e si cambia la proprietà Visible.

Seconda cosa. Per ottenere la rotazione del loading, bisogna usare le resumable sub che permettono al sistema di liberare le risorse (che sono impegnate in un ciclo for che blocca tutto) e far animare il Loading.
Questo porta alla terza cosa. I calcoli non possono stare in un modulo di codice, ma in una classe o in un Servizio (come il Servizio Starter) che può gestire le ResumableSub.
Ultima cosa, il tutto si rallenta perchè man mano che fa i calcoli rinfresca la UI e quindi i tempi aumentano tantissimo
Volendo essere più precisi, il Loading si potrebbe accendere (Show) anche solo quando serve e spegnere (Hide) quando non serve, ma in ogni caso dev'essere messo dentro un pannello e bisognerebbe mettere nello Starter una variabile boolean per indicare quando c'è una pausa/resume dell'App se il Loading era acceso o spento. Io preferisco il suggerimento di Erel di tenerlo acceso e nascondere il pannello eventualmente.
 
Top