CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: DreamReaper con ben 14 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: DreamReaper con ben 102 Thanks ricevuti negli ultimi sette giorni
Utente del mese: Bokonon con ben 359 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 3 su 3
Discussione:

Applicazione che crasha con Thread.sleep()

  1. #1
    Androidiano
    Registrato dal
    Jun 2011
    Messaggi
    255
    Thanks
    1
    Thanked 11 Times 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
    227
    Thanks
    27
    Thanked 77 Times 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
    132
    Thanks
    7
    Thanked 8 Times 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 repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •