CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: platone76 con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 9 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 7 su 7
Discussione:

pausa tra 2 linee di codice

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    zon
    zon non è in linea
    Baby Droid L'avatar di zon


    Registrato dal
    Sep 2011
    Località
    Alessandria
    Messaggi
    40
    Smartphone
    Samsung Galaxy Note 3 SM-N9005

    Ringraziamenti
    27
    Ringraziato 17 volte in 15 Posts
    Question

    pausa tra 2 linee di codice

    ciao a tutti...
    volevo chiedere come si potesse fermare il flusso di un metodo tra 2 linee di codice...
    mi spiego meglio...
    ho un ciclo for e voglio che tra l'esecuzione del blocco di codice del ciclo e la riesecuzione passi qualche secondo...
    esiste qualcosa che mi permette di fare tipo:
    for (i=0, i>10, i++){
    //fai quello che devi fare
    aspetta(1000);
    }
    in modo che il risultato sia 10 volte quello che devo fare intervallato da 1000 millisecondi tra uno e l'altro?
    ho provato con sleep ma pausa il tutto e il blocco "quello che deve fare" non da nessun risultato visibile sullo schermo... ho provato a mettere un toast e le istruzioni vengono eseguite ma non mostrate sullo schermo... spiego meglio...

    //quello che deve fare
    Toast.makeText(getApplicationContext(), "sleep chiamato "+i+"volte", Toast.LENGTH_SHORT).show();
    Thread.sleep(1000);

    mi da una pausa di 10 secondi dove sembra non succedere nulla e successivamente appaiono in sequenza i toast con "sleep chiamato 5 volte" in poi il che indica che non mi pausa effettivamente l'esecuzione ma semplicemente non te lo da a vedere...
    una mano?

    Ringrazia con il tasto thanks chi ti è stato utile!

    Se usi una bella app gratis ringrazia lo sviluppatore con un click sulla publicità.

    è solo buona educazione!

  2.  
  3. #2
    Senior Droid L'avatar di dhalia


    Registrato dal
    Oct 2010
    Messaggi
    314

    Ringraziamenti
    3
    Ringraziato 27 volte in 26 Posts
    Predefinito

    Quote Originariamente inviato da zon Visualizza il messaggio
    ciao a tutti...
    .....
    una mano?
    Un po' contorto nella richiesta ma da quanto ho capito vuoi inserire una pausa durante le operazioni

    La strada corretta potrebbe esser eseguire il tuo for in un thread separato da quello della UI
    e li stoppare ogni tot di tempo...

    In questo modo il thread grafico ha modo di continuare a fare quello che fa e il tuo thread secondario di stoppare/eseguire..

    My School Manager: per Genitori e Alunni
    Memory il gioco di quando eri bambino
    Yummes WallPaper un simpatico wallpaper

    My WebSite:
    AlchemiaAndroid

    My Blog:
    AlchemiaSoft

  4. #3
    zon
    zon non è in linea
    Baby Droid L'avatar di zon


    Registrato dal
    Sep 2011
    Località
    Alessandria
    Messaggi
    40
    Smartphone
    Samsung Galaxy Note 3 SM-N9005

    Ringraziamenti
    27
    Ringraziato 17 volte in 15 Posts
    Predefinito

    mmmh... ok... giusto per capire meglio hai qualche esempio di codice che fa al caso mio?
    cioè... mettiamo caso che io voglio far lampeggiare un layout..

    teoricamente quello che pensavo di fare è
    for (i=0,i<10,i++){
    if (i % 2 == 0){//imposta uno sfondo chiaro
    }else{//imposta uno sfondo scuro
    }
    /*qui si deve fermare un secondo circa*/
    }

    è a questo che mi serve pressapoco...
    Ultima modifica di zon; 09-12-11 alle 13:54

    Ringrazia con il tasto thanks chi ti è stato utile!

    Se usi una bella app gratis ringrazia lo sviluppatore con un click sulla publicità.

    è solo buona educazione!

  5. #4
    Senior Droid L'avatar di dhalia


    Registrato dal
    Oct 2010
    Messaggi
    314

    Ringraziamenti
    3
    Ringraziato 27 volte in 26 Posts
    Predefinito

    Quote Originariamente inviato da zon Visualizza il messaggio
    mmmh... ok... giusto per capire meglio hai qualche esempio di codice che fa al caso mio?
    cioè... mettiamo caso che io voglio far lampeggiare un layout..

    teoricamente quello che pensavo di fare è
    for (i=0,i<10,i++){
    if (i % 2 == 0){//imposta uno sfondo chiaro
    }else{//imposta uno sfondo scuro
    }
    /*qui si deve fermare un secondo circa*/
    }

    è a questo che mi serve pressapoco...
    La cosa più semplice e capibile che mi viene in mente è creare un semplice thread del tipo:



    Questo è proprio un semplicissimo thread che dorme il defaultMills, dopo aver fatto un qualcosa a seconda dello stato e che può continuare così all'infinito
    Ci sono sicuramente soluzioni più fine ma più complesse e capire come funziona un thread questo ti basta...

    Tieni presente che l'argomento non si conclude qui ma ci son un bel po' di cose da sapere (concorrenza, ecc)
    My School Manager: per Genitori e Alunni
    Memory il gioco di quando eri bambino
    Yummes WallPaper un simpatico wallpaper

    My WebSite:
    AlchemiaAndroid

    My Blog:
    AlchemiaSoft

  6. #5
    zon
    zon non è in linea
    Baby Droid L'avatar di zon


    Registrato dal
    Sep 2011
    Località
    Alessandria
    Messaggi
    40
    Smartphone
    Samsung Galaxy Note 3 SM-N9005

    Ringraziamenti
    27
    Ringraziato 17 volte in 15 Posts
    Angry

    12-09 18:48:20.753: ERROR/AndroidRuntime(247): android.view.ViewRoot$CalledFromWrongThreadExcepti on: Only the original thread that created a view hierarchy can touch its views.

    se l'ho intesa giusta non mi fa operazioni su nessun widget della gui perchè solo il thread che li hanno creato possono farlo!
    come la metto? dici che prendendo a testate il pc lo convinco a fargli fare quello che voglio?! heheh XD

    Ringrazia con il tasto thanks chi ti è stato utile!

    Se usi una bella app gratis ringrazia lo sviluppatore con un click sulla publicità.

    è solo buona educazione!

  7. #6
    Senior Droid L'avatar di dhalia


    Registrato dal
    Oct 2010
    Messaggi
    314

    Ringraziamenti
    3
    Ringraziato 27 volte in 26 Posts
    Predefinito

    Quote Originariamente inviato da zon Visualizza il messaggio
    12-09 18:48:20.753: ERROR/AndroidRuntime(247): android.view.ViewRoot$CalledFromWrongThreadExcepti on: Only the original thread that created a view hierarchy can touch its views.

    se l'ho intesa giusta non mi fa operazioni su nessun widget della gui perchè solo il thread che li hanno creato possono farlo!
    come la metto? dici che prendendo a testate il pc lo convinco a fargli fare quello che voglio?! heheh XD
    Sorry qui è colpa mia perchè non ho letto bene quello che mi hai chiesto evidentemente :P
    Allora qui, come hai notato dal log dell'errore, puoi notare che in android ciò che può toccare la GUI è solo il thread principale nonchè grafico..
    Allora un'idea easy è usare un asyncTask che però devi scriver tu.
    L'asyncTask ti da modo di avere un body che viene eseguito in un thread separato(così se blocchi con uno sleep non blocchi la UI) e di avere poi nel finish o nel publish la possibilità di connetterti ed eseguire operazioni nel thread grafico..

    Io lo uso molto quando devo fare download di immagini o dati da web, ma anche per fare quello che vuoi fare dovrebbe andare bene
    Però qui ti conviene guardare un po' di documentazione ufficiale...
    Sul mio sito mi pare che non ho ancora messo un esempio a riguardo..
    My School Manager: per Genitori e Alunni
    Memory il gioco di quando eri bambino
    Yummes WallPaper un simpatico wallpaper

    My WebSite:
    AlchemiaAndroid

    My Blog:
    AlchemiaSoft

  8. #7
    zon
    zon non è in linea
    Baby Droid L'avatar di zon


    Registrato dal
    Sep 2011
    Località
    Alessandria
    Messaggi
    40
    Smartphone
    Samsung Galaxy Note 3 SM-N9005

    Ringraziamenti
    27
    Ringraziato 17 volte in 15 Posts
    Predefinito

    ok... mi documenterò... :-) grazie per le dritte...

    Ringrazia con il tasto thanks chi ti è stato utile!

    Se usi una bella app gratis ringrazia lo sviluppatore con un click sulla publicità.

    è solo buona educazione!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy