Spanish Como puedo arrancar una activity quedando a la espera de que esta finalice para seguir el hilo

Gabino A. de la Gala

Well-Known Member
Licensed User
Longtime User
Ahora mismo tengo lo siguiente:
B4X:
Sub BtnImpAlmac_Click
    ArticulosImportados = 0
    Main.ListaAImportar = Main.LISTA_ALMACEN
    StartActivity("ImportarDatos")
   
    Main.ListaAImportar = Main.LISTA_CODIGOSAUX
    StartActivity("ImportarDatos")
End Sub

Como podéis ver, hago dos llamadas consecutivas a la misma activity de importación de datos que dependiendo de la variable Main.ListaAImportar hace una cosa u otra.

El problema que tengo es que los procesos se "pisan" entre sí.

¿Tengo alguna manera de llamar a la primera activity y que el hilo se quede "esperando" hasta que haya finalizado la misma?

Gracias y siento las preguntas de novato.
 

Gabino A. de la Gala

Well-Known Member
Licensed User
Longtime User
Bueno. De momento me he arreglado con un timer y una variable para saber cuando terminé el proceso anterior.

Si alguien puede decirme algún método más "elegante"...

Un saludo.
 

Gabino A. de la Gala

Well-Known Member
Licensed User
Longtime User
Sabés cuando termina un activity por que al terminar el proceso del activity hijo se ejecutará el proceso Activity_Resume del padre.

Saludos
Muchas gracias por la respuesta.

De eso ya me di cuenta, pero por lo que sea, si hacía la llamada a la nueva activity desde el propio resume no me funcionaba. Quizás estuviera haciendo algo mal...

Gracias de nuevo y hasta la próxima.
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola, podrias hacer al asi:

B4X:
Sub Process_Globals

Public WaitUntilOK as boolean

'.........



' en la llamada de tu codigo

StartActivity("ImportarDatos")

WaitUntilOK = True

Do While WaitUntilOK
  DoEvents
Loop

' Escribe aqui el codigo tuyo una vez salga de la llamada anterior

Cuando salgas de tu codigo pones el WaitUntilOK = false y ya podras seguir con el codigo que quieras

Puedes hacerlo asi:

B4X:
Sub Activity_KeyPress(KeyCode As Int) As Boolean
   ' este es el de tu activity ImportarDatos
    
   If KeyCode = KeyCodes.KEYCODE_BACK Then main.WaitUntilOK = false 

   
End Sub

Si tienes alguna otra forma de salir como un boton, pon el WaitUntilOK = false


Nota: Esta espera puede consumir mucho recurso del movil y si lo tienes mucho tiempo Android te puede cerrar la aplicación. Yo lo empleo y no he tenido problemas. La espera la tienes que hacer en el hilo principal.


Saludos:

Jesús
 
Top