public class MainActivity extends Activity { private ProgressBar progress_bar; private TextView text_left; private TextView text_right; private int progress = 0;//记录当前进度 private Handler handler = new Handler(){ //这个方法就是处理接收到的消息的 public void handleMessage(android.os.Message msg) { //接收消息 if (msg.what == 1) { //更新界面 text_left.setText(progress+"/100"); text_right.setText(progress+"%"); } if (msg.what == 0) { //取出消息内容 int pro = (Integer) msg.obj; //更新界面 text_left.setText(pro+"/100"); text_right.setText(pro+"%"); } }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件 progress_bar = (ProgressBar) findViewById(R.id.progress_bar); text_left = (TextView) findViewById(R.id.text_left); text_right = (TextView) findViewById(R.id.text_right); //模拟下载进度 new Thread(){ public void run() { while (true) { if (progress < 100) { progress++; progress_bar.setProgress(progress); try { sleep(50); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } //只能通过主线程去更新界面 /* * what:区分消息的标识 */ //handler.sendEmptyMessage(1);//马上发送一条空消息(没有具体的消息内容) ***** //handler.sendEmptyMessageAtTime(what, uptimeMillis);//在指定的时间发送一条空消息 //delayMillis:延时的时长--以毫秒为单位 //handler.sendEmptyMessageDelayed(what, 3000);//延时多少秒以后,发送一条空消息 ***** //--------------------------------------------------------------------------- //1.需要创建一个Message对象 Message msg = Message.obtain(); //2.缺少消息内容,,,,还缺少区分消息的标识 msg.what = 0; msg.obj = progress;//存放消息内容----传值 handler.sendMessage(msg);//马上发送一条有消息内容的消息 ***** //handler.sendMessageAtFrontOfQueue(msg);//在消息进入到消息队列(MessageQueue)之前发送一条有内容的消息 //handler.sendMessageAtTime(msg, uptimeMillis);//在指定的时间发送一条有内容的消息 //handler.sendMessageDelayed(msg, delayMillis);//延时多少秒以后,发送一条有内容的消息 ***** }else { progress = 0; //进行跳转 Intent intent = new Intent(MainActivity.this, ShowActivity.class); startActivity(intent); break; } } }; }.start(); } }
进度条
最新推荐文章于 2021-01-22 13:52:11 发布