Autore Topic: While e onCreate()  (Letto 542 volte)

Offline dimandrea

  • Nuovo arrivato
  • *
  • Post: 39
  • In realtà detesto con tutto me stesso Android.
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Asus MemoPad HD 7
  • Sistema operativo:
    Windows 7 - Windows 8.1 Up 1
While e onCreate()
« il: 02 Febbraio 2015, 12:51:42 CET »
0
Nella onCreate di un'activity ho messo un ciclo "While" che però manda all'aria l'esecuzione dell'app.

Dopo il login si avvia un'activity con un thread (opportunamente ritardato con un postdelay) all'interno del While, ma quì c'è l'inghippo: lo schermo del dispositivo rimane nero, non da segni di vita e il logcat non da errori, eccezioni o altro.
il codice è questo:
Codice (Java): [Seleziona]
while (stop == 0) {
                                // Rilevazione posizione
                                handler.postDelayed(runnable, inter);
                                // --
                        }


quale pensiate sia il problema e possibile soluzione?
Stupido è chi lo stupido fa!

Offline tonno16

  • Utente storico
  • *****
  • Post: 1228
  • Respect: +59
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:While e onCreate()
« Risposta #1 il: 02 Febbraio 2015, 13:17:51 CET »
+1
Non puoi mettere un while nel onCreate.

Crea un thread separato volendo dentro il thresd co fai while()

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:While e onCreate()
« Risposta #2 il: 02 Febbraio 2015, 13:31:44 CET »
+1
Lancia un unico postDelayed sulla OnCreate e poi mettine uno dentro la gestione stessa del messaggio inviato. In questo modo hai un invio periodico e ne puoi uscire non perpetuando l'invio stesso con un if (stop==0).
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline dimandrea

  • Nuovo arrivato
  • *
  • Post: 39
  • In realtà detesto con tutto me stesso Android.
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Asus MemoPad HD 7
  • Sistema operativo:
    Windows 7 - Windows 8.1 Up 1
Re:While e onCreate()
« Risposta #3 il: 03 Febbraio 2015, 10:28:09 CET »
0
voglio evitare annidamenti.
vorrei che il postDelay() si avvii automaticamente o che venga eseguito tante volte finché non è l'utente a dirlo (stop = 1 o stop = true).
Stupido è chi lo stupido fa!

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:While e onCreate()
« Risposta #4 il: 03 Febbraio 2015, 10:53:49 CET »
+1
voglio evitare annidamenti.
vorrei che il postDelay() si avvii automaticamente o che venga eseguito tante volte finché non è l'utente a dirlo (stop = 1 o stop = true).

Quando invii un messaggio esso viene accodato nella MessageQueue e processato al tempo opportuno. Non ci sono annidamenti, è una tecnica abbastanza abituale per schedulare e accodare workload in modo "safe".

Anzi, è proprio il loop infinito ad essere il vecchio e deprecabile modo.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline dimandrea

  • Nuovo arrivato
  • *
  • Post: 39
  • In realtà detesto con tutto me stesso Android.
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Asus MemoPad HD 7
  • Sistema operativo:
    Windows 7 - Windows 8.1 Up 1
Re:While e onCreate()
« Risposta #5 il: 03 Febbraio 2015, 11:48:25 CET »
0
Grazie. Siete stati di aiuto.
Stupido è chi lo stupido fa!