2014-12-03 2 views
0

Следующий код начинается с Android 3, Chapter 20. Когда телефон повернут, будет создано новое действие и вызывается onStart(), и поэтому bar.setProgress (0). Тем не менее, я не вижу, что прогресс бара возвращается к началу. Почему нет?bar.setProgress (0) не работает

public class HandlerDemo extends Activity { 
    ProgressBar bar; 
    Handler handler=new Handler() { 
     @Override 
     public void handleMessage(Message msg) { 
      bar.incrementProgressBy(5); 
     } 
    }; 

    AtomicBoolean isRunning=new AtomicBoolean(false); 

    @Override 
    public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
     setContentView(R.layout.main); 
     bar=(ProgressBar)findViewById(R.id.progress); 
    } 
    public void onStart() { 
     super.onStart(); 
     bar.setProgress(0); 
     Thread background=new Thread(new Runnable() { 
      public void run() { 
       try { 
        for (int i=0;i<20 && isRunning.get();i++) { 
         Thread.sleep(1000); 
         handler.sendMessage(handler.obtainMessage()); 
        } 
       } catch (Throwable t) { 
       // just end the background thread 
       } 
      } 
     }); 
     isRunning.set(true); 
     background.start(); 
    } 

    public void onStop() { 
     super.onStop(); 
     isRunning.set(false); 
    } 
} 
+0

читать это :) http://stackoverflow.com/questions/4348032/android-progressbar-does-not-update-progress-view-drawable – lv0gun9

ответ

1

Попробуйте использовать этот код

@Override 
    protected void onPause() { 
      super.onPause(); 
      isRunning.set(false); 
      bar.setProgress(0); 
    } 
+0

Спасибо! Мой вопрос в том, почему прогресс bar не сбрасывается, когда onStart() вызывается, например, во вращении. – user1443721

Смежные вопросы