CERCA
PER MODELLO
FullScreen Chatbox! :)

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

Visualizzazione dei risultati da 1 a 3 su 3
Discussione:

Applicazione che crasha con Thread.sleep()

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
    Androidiano


    Registrato dal
    Jun 2011
    Messaggi
    261

    Ringraziamenti
    1
    Ringraziato 11 volte in 11 Posts
    Predefinito

    Applicazione che crasha con Thread.sleep()

    Ho creato questo semplicissimo countdown:
    package com.crissstian96.andoid;

    import android.os.Bundle;
    import android.app.Activity;
    //import android.widget.Button;
    import android.widget.TextView;
    import android.view.*;
    public class MainActivity extends Activity {
    private TextView tv1;
    int tempo = 10;
    @Override
    public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    tv1 = (TextView) findViewById(R.id.txv1);
    try{
    while(tempo!=0){
    Thread.sleep(1000);
    tv1.setText(tempo);
    tempo--;
    }
    }
    catch(InterruptedException e){
    e.printStackTrace();
    }
    }
    }

    la compilazione non dą errore ma subito al primo avvio crasha. Dove sta il problema?

  2.  
  3. #2
    Androidiano


    Registrato dal
    Oct 2010
    Messaggi
    229

    Ringraziamenti
    27
    Ringraziato 77 volte in 35 Posts
    Predefinito

    Quote Originariamente inviato da crissstian96 Visualizza il messaggio
    Ho creato questo semplicissimo countdown:
    package com.crissstian96.andoid;

    import android.os.Bundle;
    import android.app.Activity;
    //import android.widget.Button;
    import android.widget.TextView;
    import android.view.*;
    public class MainActivity extends Activity {
    private TextView tv1;
    int tempo = 10;
    @Override
    public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    tv1 = (TextView) findViewById(R.id.txv1);
    try{
    while(tempo!=0){
    Thread.sleep(1000);
    tv1.setText(tempo);
    tempo--;
    }
    }
    catch(InterruptedException e){
    e.printStackTrace();
    }
    }
    }

    la compilazione non dą errore ma subito al primo avvio crasha. Dove sta il problema?

    E' probabile che tu, bloccando il programma nell'OnCreate con lo sleep blocchi l'intero ui thread dell'applicazione, per cui android non ricevendo risposta in tempo dalla tua app, la blocca credendola in errore.
    Su android č importante fare le operazioni che richiedono tempo su dei thread separati per non incorrere in questo problema.

    ci sono vari esempi su come usare i thread, ad esempio : Android Threads, Handlers and AsyncTask - Tutorial parla proprio del "Activity not responding" e di come mettere le funzionalitą pesanti fuori dal main thread.

    Spero sia d'aiuto.
    in bocca al lupo.
    Felice possessore di un LG O1 con GingerLOL 1.5.2 e di un Mediacom Smartpad 810c con Pistoneone 4.2.1 / 5.0 Samsung Galaxy Tab 10.1 P7510 (originale per ora) Mediacom Smartpad 715i (ROM smartpao 2.1), Mediacom Smartpad 842i (ROM smartpao 2.0)
    Mini-Forum-FAQ per Mediacom Smartpad 810c

  4. #3
    Androidiano


    Registrato dal
    Nov 2011
    Localitą
    Ivrea
    Messaggi
    133

    Ringraziamenti
    7
    Ringraziato 8 volte in 8 Posts
    Predefinito

    Cosa dicono i log? in debug a che giro va in crash?

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