在我们使用进度条 ProgressBar的时候
它的常用属性为:
进度条默认为圆形 ,但是我们这里使用是线型
style="?android:attr/progressBarStyleHorizontal"
android:progress=“33”
android:max=“100”

线程休眠
Thread.sleep(100);//抛异常
SystemClock.sleep(100);//不会抛异常

public class MainActivity extends AppCompatActivity {    private ProgressBar pb_main_pb1;    private int progress;    private TextView tv_main_tv1;    private MyHandler myHandler = new MyHandler();    private int code = 1;    private class MyHandler extends Handler{        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            if(code == msg.what){                progress ++;                pb_main_pb1.setProgress(progress);                tv_main_tv1.setText(progress+"%");            }        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        pb_main_pb1 = this.findViewById(R.id.pb_main_pb1);        tv_main_tv1 = this.findViewById(R.id.tv_main_tv1);    }    public void studyToast(View view) {        Toast.makeText(this, "hello Toast", Toast.LENGTH_LONG).show();    }    public void setProgressBar(View view) {          if(0 == progress){              new MyThread().start();          }    }    private class MyThread extends Thread{        @Override        public void run() {            super.run();            while (true){                try {                    Thread.sleep(100);                } catch (InterruptedException e) {                    e.printStackTrace();                }                if(progress == 100){                    progress =0;                    break;                }                Message msg = new Message();                msg.what = 1;                myHandler.sendMessage(msg);            }        }    }}

线程注意事项:
我们在操作 (ProgressBar除外) 控件时如果把控件放在子线程里就会出问题,所以我们这里通过MyHandler来处理这个问题。
我们在平常中下载资源时肯定不止是一个的,所以我们通过msg.what = (1,2,3,4…);来代表每一个进程,然后用MyHandler 来获取它的值,然后经过if判断来调用这个线程就行了,这里为了简单的诉说整个过程我采用的是if,你们可以用swith这样会更好一点。

 SubThread->MainThread    错误  SubThread->Handler->MainThread     正确

更多相关文章

  1. Android(安卓)窗帘(Curtain Menu)效果五之应用场景和使用方法
  2. Android(安卓)layout xml总结
  3. 【Android】TypedArray和obtainStyledAttributes使用
  4. android 适配器Adpter的使用总结 之 CursorAdpter
  5. [转]android:利用DatabaseUtils.InsertHelper提高insert速度
  6. 【百度地图-安卓SDK】技术详解集锦
  7. 安卓的下拉控件Spinner
  8. android开发架构设计学习
  9. 选项卡使用方法二(Android学习随笔十三)

随机推荐

  1. Eclipse与Android源码中ProGuard工具的使
  2. Anroid-vlc开源播放器代码编译及简单调用
  3. Android应用程序窗口(Activity)的窗口对象(W
  4. 微信 JSSDK 在 Android(安卓)和 iOS 的一
  5. Android(安卓)intent 属性详解(二)
  6. 为Android的界面设计增加跳跃效果
  7. 一起Talk Android吧(第一百四十七回:Androi
  8. Android之等比例显示图片
  9. Android应用进入爆发期 手机游戏仍是市场
  10. 图解Android:View的绘制机制与源码解析