ANDROID: Darf ich bei GLB_ON.... nochmals nachhaken?

Previous topic - Next topic

D2O

Irgendwie habe ich immer noch ein Brett vor dem Kopf.
Das GLB_ON... verwirrt mich nur noch.

Folgendes:

Datei save.txt ist vorhanden mit dem eintrag "FALSE"

Globale weden erstellt.
Code (glbasic) Select
GLOBAL a%
GLOBAL temp$

Danach wird abgefragt welcher eintrag in der save.txt steht.
Code (glbasic) Select
OPENFILE( 1,"Media/pause.txt",TRUE)
READLINE  1,temp$
CLOSEFILE 1

Wenn nun FALSE drinnen steht, bekommt
die Variable a% den wert 10.
Code (glbasic) Select
IF temp$ =  "FALSE"
a% = 10
ENDIF

MAIN LOOP startet.
Code (glbasic) Select
WHILE TRUE

PRINT "Hallo",a%,100

SHOWSCREEN
WEND


Wird nun das Programm auf dem Handy in den "Hintergrund gedrückt"
sollte GLB_ON_PAUSE aufgerufen werden.
Code (glbasic) Select
SUB GLB_ON_PAUSE:

OPENFILE( 1,"Media/pause.txt",FALSE)
WRITELINE 1,"TRUE"
WRITELINE 1,400

CLOSEFILE 1

ENDSUB

wird es wieder Aktiviert, sollte ja GLB_ON_RESUME starten
und ansich ja die Variable a% den Wert 400 bekommen.
Code (glbasic) Select
SUB GLB_ON_RESUME:

OPENFILE( 1,"Media/pause.txt",TRUE)
READLINE  1,temp$
READLINE 1,a%
CLOSEFILE 1

ENDSUB

und sollte das Programm beendet werden wir ja vorher GLB_ON_QUIT ausgeführt
um den eintrag wieder auf FALSE zu stellen.
Code (glbasic) Select
SUB GLB_ON_QUIT:
    OPENFILE (1, "Media/pause.txt",FALSE)
WRITELINE 1,"FALSE"
CLOSEFILE 1
ENDSUB


Nur funktioniert das nur unter Windows teilweise, das heist, verliert das Programm den Focus und
wird es danach wieder Aktiviert, wird die Variable richtig geändert.
Unter ANDROID verhart a% auf dem Wert 10, auch unter Windows wird kein "FALSE" mehr eingetragen

Denkfehler meinerseits, bzw. Verständnisproblem?

Hier nochmals das ganze an einem Stück.
Code (glbasic) Select
// --------------------------------- //
// Project: Simple_Android
// Start: Sunday, December 14, 2014
// IDE Version: 12.312
// SETCURRENTDIR("Media") // go to media files

GLOBAL a%
GLOBAL temp$

OPENFILE( 1,"Media/pause.txt",TRUE)
READLINE  1,temp$
CLOSEFILE 1

IF temp$ =  "FALSE"
a% = 10
ENDIF


WHILE TRUE

PRINT "Hallo",a%,100

SHOWSCREEN
WEND

SUB GLB_ON_QUIT:
    OPENFILE (1, "Media/pause.txt",FALSE)
WRITELINE 1,"FALSE"
CLOSEFILE 1
ENDSUB


SUB GLB_ON_PAUSE:

OPENFILE( 1,"Media/pause.txt",FALSE)
WRITELINE 1,"TRUE"
WRITELINE 1,400

CLOSEFILE 1

ENDSUB

SUB GLB_ON_RESUME:

OPENFILE( 1,"Media/pause.txt",TRUE)
READLINE  1,temp$
READLINE 1,a%
CLOSEFILE 1

ENDSUB


Denkanstoss??
oder ein Simples Code Stück das mir das ganze mal zeigt wie es sein sollte??

Hier mal vorab ein grosses Danke.

I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell