Spanish Tu APK debe incluir recursos de diseño personalizables para densidades de pantalla de tablet comunes

rscheel

Well-Known Member
Licensed User
Longtime User
No esta mal, esta bien están tus servicios mas el okhttp, es normal cuando utilizas esa librería.
 

vbmundo

Well-Known Member
Licensed User
Me ha pasado algo extraño.. he accedido a la APP en mi movil, (la cual accedo unas 100 veces al día) pero ahora lo hice en la calle (sin Wifi) y solo usando el paquete de datos movil, y ni me abrió.. me apareció inmediatamente el cartel de Super MySQL se ha detenido.
 

rscheel

Well-Known Member
Licensed User
Longtime User
Solo cuando le doy al boton para atrás, solo comente la linea de la imagen y se soluciono. El error que aparece en la imagen lo dice.

Captura.PNG


Captura2.PNG
 

vbmundo

Well-Known Member
Licensed User
claro,

Lo puse porque asumí que al hacer USERCLOSED en el MAIN, ya no habia nada que hacer.. el usuario habia cerrado la APP.

Evidentemente me equivoqué..

Buenísimo..una cosa por optimizar !!
 

vbmundo

Well-Known Member
Licensed User
Ya entendí porque te dió el error..

y porque a mi mil veces no me dió ese error.

tu solo cargaste la APP y le has dado boton para atrás..

No has hecho click en el botón CONNECT , y la Base no esta inicializada ni abierta.. por eso da el error.

ERROR MIO AL NO VALIDAR ESO., pero si te hubieras conectado, no deberia dar error por cerrar la base.
 

rscheel

Well-Known Member
Licensed User
Longtime User
Ya entendí porque te dió el error..

y porque a mi mil veces no me dió ese error.

tu solo cargaste la APP y le has dado boton para atrás..

No has hecho click en el botón CONNECT , y la Base no esta inicializada ni abierta.. por eso da el error.

ERROR MIO AL NO VALIDAR ESO., pero si te hubieras conectado, no deberia dar error por cerrar la base.

En Ambos casos apretando el boton conectar o no aparecía el error, solo con comentar esa linea se soluciona.
 

rscheel

Well-Known Member
Licensed User
Longtime User
Igual tienes que validar si los datos ingresados no son validos, si no lo haces se puede quedar cargando el mensaje y jamas aparecerá un mensaje de que no se conecto a la BD en el log aparece el error pero pero visualmente en la app no aparece nada.

Yo el código del botón lo hubiera hecho así

B4X:
Sub BotonConectar_Click

    If txtServidor.Text.Trim.Length == 0 Or txtUser.Text.Trim.Length == 0 Or txtPassword.Text.Trim.Length == 0 Or  txtPort.Text.Trim.Length == 0  Then
   
    ToastMessageShow("Debe Completar Todos Los Campos...", False)
    Else
        Dim t As String
        ProgressDialogShow2("Connecting", False)
    Try
       
             MySQL.MySQL_Server=txtServidor.Text.Trim
            MySQL.MySQL_Port=txtPort.Text.Trim
            MySQL.MySQL_User=txtUser.Text.Trim
            MySQL.MySQL_Password=txtPassword.Text.Trim

            MySQL.ListadeBases.Initialize

            CallSub(MySQL,"ConectaSchema")

            t="SELECT DISTINCT(TABLE_SCHEMA) AS BASE, Count(DISTINCT(TABLE_SCHEMA)) as Registros FROM TABLES WHERE TABLE_SCHEMA<>'information_schema'"
            CallSub2(MySQL,"LeoMySQLSchema",CreateMap("TextoSQL":t,"Activity":"Main","Modulo":"Schema_LeoTablas"))
    Catch
        Msgbox(LastException.Message,"Error")
        Log(LastException)
    End Try
    End If

   
End Sub

Y tu código es este

B4X:
Sub BotonConectar_Click
    Dim Valido As Boolean=True, t As String
    CantidadBases=0
    ProgressDialogShow("Connecting")
    Try
        If txtServidor.Text.Trim.Length=0 Then
           Valido=False
           Msgbox ("Server Info Required","Missing Info")
           txtServidor.RequestFocus
        End If
        If txtPort.Text.Trim.Length=0 Then
           Valido=False
           Msgbox ("Port Info Required","Missing Info")
           txtPort.RequestFocus
        End If
        If txtUser.Text.Trim.Length=0 Then
           Valido=False
           Msgbox("User Info Required","Missing Info")
           txtUser.RequestFocus
        End If
        If txtPassword.Text.Trim.Length=0 Then
            Valido=False
            Msgbox("Password Info Required","Missing Info")
            txtPassword.RequestFocus
        End If
       
        If Valido=True Then
             MySQL.MySQL_Server=txtServidor.Text.Trim
            MySQL.MySQL_Port=txtPort.Text.Trim
            MySQL.MySQL_User=txtUser.Text.Trim
            MySQL.MySQL_Password=txtPassword.Text.Trim

            MySQL.ListadeBases.Initialize

            CallSub(MySQL,"ConectaSchema")

            t="SELECT DISTINCT(TABLE_SCHEMA) AS BASE, Count(DISTINCT(TABLE_SCHEMA)) as Registros FROM TABLES WHERE TABLE_SCHEMA<>'information_schema'"
            CallSub2(MySQL,"LeoMySQLSchema",CreateMap("TextoSQL":t,"Activity":"Main","Modulo":"Schema_LeoTablas"))
        End If
    Catch
        Msgbox(LastException.Message,"Error")
        Log(LastException)
    End Try
End Sub
 

rscheel

Well-Known Member
Licensed User
Longtime User
Esta buena la app, la pregunta es por que no hacerla con interfaz Material design, seria mas llamativa de forma visual.
 

vbmundo

Well-Known Member
Licensed User
Vamos por partes.

1. La libreria es de DonManfred y si bien le ha añadido ahora ultimamente algunas consideraciones a manejo de errores, no es su fuerte.. el mismo asume que todo lo que tu pongas debe ser sintacticamente y efectivamente correcto.
Yo mismo le he solicitado publicamente en su POST, que le de mas atención al tema errores.

Pero piensa esto.. si tu tuvieras que usar su libreria, ya pondrias la conexion correcta, los SQL correctos..

Mi Aplicación es dificil por eso.. porque es el usuario el que dibuja todo..

La Libreria de Don,.. hace que si los datos de conexión no son los correctos aparezca ese cuelgue.. no hay devolución de error en su libreria para la conexión.. pero si para los SQLs enviados. pero yo no puedo obligarlo a que lo haga.

2. cual es la diferencia entre MSGBOX y TOASTMESSAGESHOW ?

3. Como te he expresado, al no manejar el error la Lib de Don, el TRY CATCH no capturaria el error.
 

dar2o3

Active Member
Licensed User
Longtime User
Con material design le das apariencia a la app.

Pon en google material desing y entenderá de lo que te habla rschell.

Esta es la apariencia con material desing de una app que estoy haciendo, para que te hagas una idea.
 

Attachments

  • WhatsApp Image 2016-07-29 at 23.02.55.jpeg
    WhatsApp Image 2016-07-29 at 23.02.55.jpeg
    70.6 KB · Views: 268

vbmundo

Well-Known Member
Licensed User
Con material design le das apariencia a la app.

Pon en google material desing y entenderá de lo que te habla rschell.

Esta es la apariencia con material desing de una app que estoy haciendo, para que te hagas una idea.

Buenisimo !!!

Espero que no sea de mucha complejidad, y pueda salir andando en poco tiempo con el Material Design

Gracias
 

dar2o3

Active Member
Licensed User
Longtime User
Con respecto al tema se servicios y tener mas de un servicio en marcha... No se me ocurre una aplicación en la que necesite tener mas de un servicio en marcha y en esta aplicación en concreto yo no tendría ningún servicio.
A ver que opina el resto.
 

vbmundo

Well-Known Member
Licensed User
Con respecto al tema se servicios y tener mas de un servicio en marcha... No se me ocurre una aplicación en la que necesite tener mas de un servicio en marcha y en esta aplicación en concreto yo no tendría ningún servicio.
A ver que opina el resto.

Y donde pondrias todos los SUBS de manejo de la Base de Datos, que pueda ser accedido por cada Activity y mantenga el valor de sus variables ?
 

rscheel

Well-Known Member
Licensed User
Longtime User
Con respecto al tema se servicios y tener mas de un servicio en marcha... No se me ocurre una aplicación en la que necesite tener mas de un servicio en marcha y en esta aplicación en concreto yo no tendría ningún servicio.
A ver que opina el resto.

Concuerdo contigo, ya que los servicios es bueno usarlos para que la aplicación sincronice datos con un server remoto y en este caso no hay sincronizan de datos.

Para dejarlo mas claro imagínate tener una aplicación que guardes datos sin conexión en el teléfono y haces tu trabajo y cierras la app, el servicio estará corriendo en segundo plano, este cuando detecte que hay conexión sincronizara los datos automáticamente sin que tengas que estar apretando un botón o abrir la app para hacerlo.
 

rscheel

Well-Known Member
Licensed User
Longtime User
Con material design le das apariencia a la app.

Pon en google material desing y entenderá de lo que te habla rschell.

Esta es la apariencia con material desing de una app que estoy haciendo, para que te hagas una idea.

Se ve interesante tu app, con material drawer.
 
Top