Italian La prossima settimana, VACANZE... ma per ora vado avanti

CyclopDroid

Well-Known Member
Licensed User
Longtime User
Già! però non riesco a capire come diamine interrompere il processo della pressione dei tasti
Ho notato che, quando chiudo il Widget, lui passa dalla Sub e lo termina.... ma non capisco cosa è che rimane attivoper intercettare i tasti volume
Sembrerebbe il Service, visto che è lì il controllo e l'app, una volta chiusa, esce (lo vedo dal debug che si stoppa)... ma c'è qualcosa che gira (oltre alle mie OO)
 

CyclopDroid

Well-Known Member
Licensed User
Longtime User
Mmmmhhhh
La cosa che non mi quaglia è che, nel LO-G, quando si stoppa, trovo questa dicitura:


B4X:
** Service (srvpickup) Start **
Service_StaRt:android.appwidget.action.APPWIDGET_DELETED
** Service (srvpickup) Start **
Service_StaRt:android.appwidget.action.APPWIDGET_DISABLED
Service: rv_Disabled

Non capisco il perché, se ho prima chiuso, mi si posiziona su Disabled
Service_StaRt:è il log che ho messo al Service_Start, passando come valore StartingIntent.Action
 

CyclopDroid

Well-Known Member
Licensed User
Longtime User
Stò a sbroccà
Ho messo i log ad inizio di ogni Activity e Service ma....NIENTE!
La Main si chiude, il Seervice viene interrotto ma, alla pressione di uno dei tasti volume, riparte
Ho messo un log anche dove si trovano questi ma NON entra

Il Service non viene chiuso e rimane sempre attivo
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Semo in due! Io mi sono messo in testa di sviluppare al volo una utility che pensavo di fare in un'ora... e sto a sbroccà, hehehe.
(mi sono impelagato in una routine ricorsiva, quanto di meglio esiste per farti rinc....ire!).

Temo che non sarei in grado di aiutarti nemmeno avendo il sorgente: solo tu che l'hai sviluppato puoi riuscire a trovare il problema, penso.

(però, dato che sono informaticamente masochista, se vuoi inviarmelo, un cuc (ciao Mamo) glielo do; finalmente sono sulla buona strada, per l'utility).
 

CyclopDroid

Well-Known Member
Licensed User
Longtime User
Macché esulta
Mi to rico tutt'oggi e l'ho pure scritto sul forum Question, sperandi che qualcuno possa dirmi "Guarda che hai sbagliato a terminare il Service..."
..ma penso che non sia quello (anche se effettivamente sto maledetto resta attivo)
Come te lo invio Luca? con tutte le immagini e i moduli?
 

CyclopDroid

Well-Known Member
Licensed User
Longtime User
Io non pretendo nulla
Non preoccuparti, vorrei provare a sbatterci la testa ancora per un po (anche io sono masochista su queste cose ).
Se non riesco proprio, cercherò di inviartela.
Ma devo lasciare la PublikKey di GooglePley?
Comunque, come detto, semmai un giorno riuscissi a diventare milionario (ma va bene anche centenario o dieciario ) ti faccio qualche donazione.
Buona notte per sta sera... magari mi rinfresco le idee domani.
Ciao Luca e ciao Mamo, a domani
 

CyclopDroid

Well-Known Member
Licensed User
Longtime User
Buon giorno a tutti!!
Ariecchime co tutti i bicchierini
 

CyclopDroid

Well-Known Member
Licensed User
Longtime User
In questa parte del Service, quando rimuovo il Widget dallo schermo, fa visualizzare ientrambi i LOG, ed entra nella Main, dove termina il tutto.


B4X:
'Aggiunta il 13/11/2014
    If StartingIntent.Action = "android.appwidget.action.APPWIDGET_DELETED" Then
        Log("Service_Start:action.APPWIDGET_DELETED")
        Return
    End If

If rv.HandleWidgetEvents(StartingIntent)=False Then
    If StartingIntent.Action="android.appwidget.action.APPWIDGET_UPDATE_OPTIONS" Then
        StartActivity(Menu)
    End If
Else
    Log("Service_Start:HandleWidgetEvents")
    Return
End If
rv_RequestUpdate
'Fine
End Sub

...ho provato a mettere anche il codice sotto (che solitmente richiamo in Main, mttendo il Service al posto del Me), dopo entrambi i Log...vi ci passa ma non accade nulla!
Sempre il tutto vine chiuso ma, se premo i tasti volume, ripart. ...ho creato un mostro autonomo


B4X:
WidTimer.Enabled=False
StopService(Me)
CancelScheduledService(Me)
ExitApplication
 

udg

Expert
Licensed User
Longtime User
Ciao a tutti,

non vorrei dire una sciocchezza, ma credo che il fatto di porsi in ascolto tramite un intent possa essere la cause del riavvio alla pressione del tasto volume.
Mi spiego meglio.
Il service viene in realtà terminato (come da codice in Main); poi, alla pressione del tasto volume, viene riattivato dal sistema operativo semplicemente perchè quel service si è registrato come listener di un messaggio veicolato tramite il sistema degli intent.

Certo, sarebbe come dire "un intent è per sempre".. ma temo sia così.

Umberto
 

CyclopDroid

Well-Known Member
Licensed User
Longtime User
Ho provato a togliere l'intercettaione dei tasti volume dal Service ma, il Service parte sempe seppur chiuso (certo, ora non ho più il toast della mia App...però, non cambia nulla.

Cosa mi consiglieresti di fare?
 
Last edited:

udg

Expert
Licensed User
Longtime User
Scusa, ma non seguo "il caso" dall'inizio quindi il mio aiuto è relativo; comunque, hai pubblicato in qualche post l'intera sezioen service_start ( o ritieni utile inviarmela tramite private mail) in modo che possa darci un'occhiata?

Intanto guarda qui per la questione del log di cui al tuo post #623
In sostanza, DELETED arriva quando una (tra le infinite possibili copie) istanza del widget viene tolta dalla home (più correttamente, dal widget host) mentre DISABLED arriva quando l'ultima copia del widget viene rimossa.
Da cui, nel caso normale di unica copia, direi sia normale riceverle entrambe.
Una possibile prova: due copie del widget sulla home. Alla rimozione della prima dovresti avere solo DELETED mentre alal rimozione della seconda dovresti avere entrambe nel log.

udg
 

CyclopDroid

Well-Known Member
Licensed User
Longtime User
Infatti è così.
Erel mi ha risposto così:

How are you intercepting this intent?
With a static filter?
...ma non capisco a cosa si riferisce
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…