Italian Splash screen

AlpVir

Well-Known Member
Licensed User
Longtime User
Ho rimesso mano ad una mia vecchia app (sviluppata - devo precisarlo - non con le B4X Pages) che per avviarsi impiega 5 o 6 secondi ed esegue una serie di operazioni abbastanza complesse, il cui codice è distributio in Main ed in un altro modulo che raccoglie le funzioni comuni; solo dopo l'app visualizza l'interfaccia grafica.
Un funzionamento non pienamente soddisfacente ed allora ho pensato di creare un'altra app che svolge un solo compito, quello di creare (tutta da codice) una videata animata. Lo fa in un attimo, veramente istantaneamente. Questa app l'ho chiamata SplashActivity.
Adesso vorrei aggiungere alla prima app la seconda ma non so come fare.
Perchè, ragionando un po' uno splash screen non serve solo per allietare l'utente con una bella grafica od animazione, serve anche (soprattutto) per effettuare in backgound operazioni lente e senza interfaccia visiva.
Dovrei quindi "invertire" le 2 app: chiamare main la SpashActivity e la vecchia Main chiamarla (ad esempio) "Principale", lanciandola dopo che tutte le operazioni "lente" sono state eseguite.
Poi dovrei spostare una lunga serie di sub da una all'altra activity, modificando i riferimento alle variabili e sub all'interno delle 2 activity.
Un lavoraccio !
Mi domando, e domando a voi, se c'è qualche altra strada più semplice, magari impostando qualche istruzione nel manifest.
Se, per esempio, Android potesse eseguire contemporaneamente 2 activity (una lenta ed una veloce) avrei probabilmente risolto il problema. Ma non credo sia possibile,
Grazie per l'attenzione.
 

LucaMs

Expert
Licensed User
Longtime User
Se, per esempio, Android potesse eseguire contemporaneamente 2 activity (una lenta ed una veloce) avrei probabilmente risolto il problema. Ma non credo sia possibile,
Eh, maremma cocciuta, questo è proprio uno dei casi in cui i progetti di tipo B4XPages sono utilissimi.

In quei progetti, c'è un unico Main - nel tuo caso, B4A, un'Activity - che "contiene" una o più pagine (B4XPages). Così l'unica Activity è attiva ma lo sono anche tutte le B4XPages aperte!!!

Immagino (e condivido) che tu non voglia convertire tutta la tua app in un progetto B4XPages, sarebbe un lavoraccio enorme; però accetta un consiglio: da oggi, qualunque sia la tua app, creala di tipo B4XPages, anche se non ti sembra necessario.

Detto questo, non credo proprio che ci sia una soluzione come intendi tu, con un'Activity che faccia da splash screen ed altre Activity che siano il progetto vero e proprio.
Dire che ti converrebbe creare una "semplice" libreria SplashScreen, che mostri l'animazione, con degli Sleep ma che dovrai usare nella Main del tuo progetto vero e proprio.
 

AlpVir

Well-Known Member
Licensed User
Longtime User

LucaMs

Expert
Licensed User
Longtime User

Sagenut

Expert
Licensed User
Longtime User
Se, per esempio, Android potesse eseguire contemporaneamente 2 activity (una lenta ed una veloce) avrei probabilmente risolto il problema. Ma non credo sia possibile,
Le B4XPages risolvono questo problema.
Utilizzi la B4XMainPage come splashscreen, e nel mentre fai eseguire ad un'altra page le tue funzioni fino a completamento.
Oppure se è già tutto impostato nella B4XMainPage semplicemente fai apparire un Panel a tutto schermo con qualcosa come Splash e intanto esegui tutto fino a completamento.
 

Sagenut

Expert
Licensed User
Longtime User
Un piccolo esempio.
 

Attachments

  • Splash.zip
    29.4 KB · Views: 10

Sagenut

Expert
Licensed User
Longtime User
Eh si, ma se hai già un progetto completo, magari nemmeno piccolo, trasformarlo in B4XPages è una rogna. Farlo, poi, solo per lo splash screen...!
Avevo letto male.
Comunque se il suo progetto ora è mono activity può applicare lo stesso concetto del mio esempio.
 

AlpVir

Well-Known Member
Licensed User
Longtime User
Il mio progetto non è monoactivity. Tra activity e moduli siamo a circa 30. Impensabile trasformarlo in B4X pages.
Comunque ho trasferito gran parte delle procedure lente in un servizio (come suggerito da LucaMs) ed il risultato mi pare soddisfacente (anche se necessita ancora di qualche limatura).
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…