Italian Chiacchiericci

Sagenut

Expert
Licensed User
Longtime User
Finita 7 a 7 - era una partita in onore a Pirlo (suo addio al calcio giiocato, suppongo)

Adesso si dedicherà solo alla sua azienda vinicola.
 

Sagenut

Expert
Licensed User
Longtime User
Ce riprovo? All'una di notte?

Ed è un bug scoperto soltanto "oggi" (ieri, oramai) perché ho un nuovo smartphone, altrimenti non l'avrei mai saputo (se non dopo la pubblicazione e sarebbero stati dolori).

Se disattivi lo sblocco con l'impronta digitale lo fà lo stesso?
 

LucaMs

Expert
Licensed User
Longtime User
Se disattivi lo sblocco con l'impronta digitale lo fà lo stesso?
Il problema è dovuto al fatto che lo smartphone con A7, a differenza di un mio tablet con A4, quando lo riattivi si mette sempre in portrait (mentre il tablet si riattiva come l'hai lasciato), non ha proprio la modalità landscape (parlo della home).
Quindi, sebbene non dovrebbe, l'app riparte, per un attimo, in portrait per poi passare al landscape e, in questo passaggio, riesegue l'Activity_Create.
Ma dev'esserci altro, perché in Activity_Create non accade alcunché di speciale.
 

LucaMs

Expert
Licensed User
Longtime User
E' un "pastrocchio" in quanto all'epoca sviluppai una classe ben strana che crea una specie di animazione-splash, anziché avere uno splash-screen, che a sua volta utilizza un'altra stupida e semplice classe che verifica se sul dispositivo ci sia una connessione Internet attiva. Questa, per farlo, scarica la home di Google (o una seconda, prima di stabilire che non ci sia connessione).
In aggiunta a questo, parte poi un servizio, etc.

All'epoca non c'erano le Resumable; inoltre, usavo httputils, mentre oggi è meglio usare (non ricordo esattamente il motivo) okhttputils2.
 

LucaMs

Expert
Licensed User
Longtime User
Riattivo lo smartphone solo usando l'impronta digitale:
** Activity (main) Resume **
+++++ Activity_Resume
+++++ mAppStarted: true
+++++ lancio btnRefreshGameRooms_Click
+++++ lancio RefreshGameRooms
+++++ ESEGUO RefreshGameRooms
+++++ lancio RefreshGameRooms in srvComm
+++++ SRVCOMM - INVIO GetGameRooms AL SERVER



Riattivo lo smartphone tramite tasto e poi l'impronta digitale:
** Activity (main) Create, isFirst = false **
** Activity (main) Resume **

+++++ Activity_Resume
+++++ mAppStarted: true
+++++ lancio btnRefreshGameRooms_Click
+++++ lancio RefreshGameRooms
+++++ ESEGUO RefreshGameRooms
+++++ lancio RefreshGameRooms in srvComm
** Activity (main) Pause, UserClosed = false **
** Activity (main) Create, isFirst = false **
** Activity (main) Resume **

+++++ Activity_Resume
+++++ mAppStarted: true
+++++ lancio btnRefreshGameRooms_Click
+++++ lancio RefreshGameRooms
+++++ ESEGUO RefreshGameRooms
+++++ lancio RefreshGameRooms in srvComm
+++++ SRVCOMM - INVIO GetGameRooms AL SERVER
+++++ SRVCOMM - INVIO GetGameRooms AL SERVER

!!! Con calma, devo studiare.
 

Sagenut

Expert
Licensed User
Longtime User
Però mi pare che nessun smartphone metta la home in landscape.
In ogni caso nel momento che l'app si riapre dovrebbe comunque passare in landscape.
Forse c'è solo un errore nella gestione del cambio orientamento, anche se ufficialmente la tua app non lo fà questo cambio.
 

LucaMs

Expert
Licensed User
Longtime User
Però mi pare che nessun smartphone metta la home in landscape.
Forse non hai mai avuto un dispositivo così vecchio :D

In ogni caso nel momento che l'app si riapre dovrebbe comunque passare in landscape.
Infatti si mette in landscape, ma ci arriva dopo lo sblocco della home, che è in portrait, quindi viene di nuovo creata l'Activity.
Ma, ripeto, certamente il problema è altrove, probabilmente nella Resume, che contiene una strana chiamata alla classe di animazione-splash ed altro.

Se poi guardi il log che ho pubblicato sopra, un certo servizio viene addirittura avviato due volte, in quel caso.
 

Sagenut

Expert
Licensed User
Longtime User

LucaMs

Expert
Licensed User
Longtime User
Devo vedere se riesco ad intercettare il cambiamento di orientamento.
Se ci riesco, nella resume non lancio di nuovo la richiesta delle stanze, perché penso sia quello il problema, è già stato fatto ma tutta la pappardella non è stata ancora completata e viene rilanciata.
 
D

Deleted member 103

Guest
Motivo? Su uno dei due, la "home" si adatta all'orientamento del dispositivo (landscape-portrait), sull'altro, il più recente Android 7, no, resta sempre in portrait.
Questo comporta che, se metto in pausa lo smartphone e poi lo... RAVVIVO, lo fa in portrait (mentre la mia Penny è sdraiata, in landscape, non ha scelta); gli metto un dito dietro (allo smartphone, eh :p), per la lettura dell'impronta digitale, quindi Penny torna in foreground, non prima di aver ruotato, però.
Non usare la funzione "phone1.SetScreenOrientation(0)", usa "#SupportedOrientations: landscape" per costringere la Panny a stare sdraiata. :p
 

LucaMs

Expert
Licensed User
Longtime User
#SupportedOrientations: landscape" per costringere la Panny a stare sdraiata
Certo, uso quella ma, visto il problema, ho voluto tentare. Anche impostandola da file Manifest, non è possibile impedirgli quella rotazione.

Troverò perché gli fa male ruotare!

Ma non è la prima volta che mi capita qualcosa che sembra funzionare bene su due dispositivi e sul terzo non va e, ogni volta, parecchia perdita di tempo (come se non ne avessi già perso a sufficienza), lo stress aumenta, la voglia di proseguire diminuisce.

E la cosa peggiore è che è roba sviluppata parecchio tempo fa che davo già per scontata, provata e funzionante.
 
Last edited:
D

Deleted member 103

Guest
Io ho alcune App che partono solo in Landscape e non ho problemi.
Puoi postare il Log(B4a-Log) dell'avvio della App?
Sicuramente dopo Activity_Create + Activity_Resume va in Activity_Pause e riparte con Activity_Create + Activity_Resume.
 

LucaMs

Expert
Licensed User
Longtime User
Io ho alcune App che partono solo in Landscape e non ho problemi.
Se le hai pubblicate su Google AGGRATISE :p, indicamene una che la provo sul dannato Huawei.

Puoi postare il Log(B4a-Log) dell'avvio della App?
Sto facendo un log minuzioso, nei due casi differenti (non so se hai letto tutto; spero per te di no :D, ma se metto in pausa lo smartphone, ovviamente con il gioco visualizzato e funzionante, ho due modi di riattivarlo:
1) impronta digitale; in questo caso, alla "riaccensione" compare direttamente il gioco e quindi direttamente in landscape;
2) premo di nuovo il tasto usato per mettere in stand-by lo smartphone, compare la sua home SEMPRE IN PORTRAIT, non l'app, ed a quel punto devo di nuovo passare l'impronta digitale, dopodiché l'app viene rimessa in foreground ma, trovandosi il sistema in Portrait, avviene la rotazione, l'app si mette in landscape, ed avviene il disastro (sembra non caricare il layout, in quanto il display è vuoto e grigio).

Vorrei pubblicare subito il log fatto ma non sono certissimo di averlo fatto identico, quindi lo farò tra un paio di minuti (o qualcosina in più :))
 
Top