French Timer et pause de l'application

Calvero

Member
Licensed User
Bonjour à tous,

J'ai un autre problème dans mon appli si un utilisateur réduit l'application pendant qu'un timer est lancé alors l'appli plante au redémarrage.

B4X:
java.lang.RuntimeException: Object should first be initialized (Label).
    at anywheresoftware.b4a.AbsObjectWrapper.getObject(AbsObjectWrapper.java:50)
    at anywheresoftware.b4a.objects.TextViewWrapper.setText(TextViewWrapper.java:43)
    at lbq.ad.main._timer2_tick(main.java:1585)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:169)
    at anywheresoftware.b4a.objects.Timer$TickTack.run(Timer.java:105)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:158)
    at android.app.ActivityThread.main(ActivityThread.java:7224)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

J'ai compris que c'était un problème d'initialisation du compteur à la réouverture de l'appli mais je ne sais pas où insérer une réinitialisation... Si vraiment c'est ça la solution.

Merci d'avance de vos réponses.
 

lemonisdead

Well-Known Member
Licensed User
Bonjour,
Dans le log c'est un Label qui n'est pas initialisé apparemment.
A quoi ressemble votre code?
 

Calvero

Member
Licensed User
Ben disons que je ne sais pas précisément où se situe le problème dans le programme, et désolé mais je ne peu pas envoyer tout le code sur le forum, en 7zip par mail à la rigueur.

Mais pour en revenir à la conversation que nous avons eu dans l'autre sujet, je n'ai rien dans Sub Activity_Resume... et ne sais pas précisément qu'es-ce que je dois y mettre bien qu'ayant lu le tuto de Klaus en long en large et en travers.

Je comprends au vu de l'erreur et des circonstances qui la déclenche que mon problème est certainement dû à un problème de variable que je n'initialise pas au relancement de l'appli et je sais que cela se produit exclusivement quand il y a un timer actif.

Peux-tu me préciser le bout de code que tu souhaites ? Ou as-tu une autre idée ?

Merci en tout cas !
 

Calvero

Member
Licensed User
Bon j'ai changé de politique et ai décidé de renvoyer à la page d’accueil l'utilisateur si il met l'application en pause. Ça m'évite d'avoir l'erreur.
 

lemonisdead

Well-Known Member
Licensed User
Bonjour et désolée du retard : cette dernière idée semble bien bonne. Toutefois, cela ne résoudra pas d'autres problèmes que vous pourriez rencontrer avec l'initialisation des vues (Views) utilisées par vos activités.
Du message d'erreur initial (Object should first be initialized (Label)) je comprenais que si l'activité était mise en pause, soit vous ne rechargiez pas totalement le layout utilisé dans Activity_Create (par exemple en faisant un test avec FirstTime=True ce qui n'est pas bon), soit vous ajoutiez manuellement un Label sans l'initialiser.
Ce sujet reviendra probablement à l'avenir.
 

Calvero

Member
Licensed User
Mince c'est une menace ? :)

Alors je n'ai jamais utilisé cette propriété FirstTime = True, j'en comprend le sens mais pas vraiment l’intérêt à part pour afficher un "splash screen" ou un message de bienvenue...

Mais quand vous me dites "soit vous ne rechargiez pas totalement le layout utilisé dans Activity_Create" ça signifie qu'en temps normal je dois pour faire un programme propre initialiser toutes mes layouts dans Activity_Create ? Initialisé signifiant quoi ? Définir les boutons, les tailles de textes et les couleurs ?

Désolé de ces questions basique, mais je suis un bleue en programmation et j'essaye de soulever des montagnes ; malgré cette contradiction je persévère à coup de tuto et de gens bien intentionné dans les forums, peut être qu'un jour je serais cette personne qui aide les petits nouveaux à progresser ! :D
 
Top