2014-12-03 93 views
0

以下代码来自Beginning 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 2014-12-03 05:46:39

回答

1

尝试使用此代码

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

谢谢!我的问题是为什么当onStart()被调用时,bar的进度没有被重置,比如旋转。 – user1443721 2014-12-03 06:43:15

相关问题