zoukankan      html  css  js  c++  java
  • handler 异步执行(进度条加载到100)

    1. 生明一个handler 对象(可重写handlerMessage 方法)
    2. 声明一个Runnable 对象,需重写run方法
    3. 按钮事件:handler对象实例的post方法调用线程。
    4. 线程的run方法开始执行。
    5. 设置进度条的进度比例,并延迟3秒再次执行,直到100时退出。
    6. 分支:发送消息,休眠3秒。
    7. 在handler的消息中设置进度条比率并重新启动线程。
    http://www.cnblogs.com/devinzhang/archive/2011/12/30/2306980.html


    package com.example.study0601; import android.R.integer; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ProgressBar; public class handlerProcessBar extends Activity { private Button btnStart = null; private ProgressBar myBar = null; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_handerbar); //绑定onclick 事件 btnStart = (Button) findViewById(R.id.btnStart); btnStart.setOnClickListener(new StartButtonListener()); myBar = (ProgressBar) findViewById(R.id.processBar); } class StartButtonListener implements OnClickListener { @Override public void onClick(View v) { handler.post(myThread); } } Handler handler = new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub //super.handleMessage(msg); myBar.setProgress(msg.arg1); handler.post(myThread); } }; Runnable myThread = new Runnable() { int i = 0; @Override public void run() { i+=10; //myBar.setProgress(i); //handler.postDelayed(myThread, 3000); Message msg = handler.obtainMessage(); msg.arg1 = i; try { Thread.sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } handler.sendMessage(msg); if(i== 100) { handler.removeCallbacks(myThread); } } }; }

      

  • 相关阅读:
    (转)排序算法——归并排序与递归
    在serviceImpl里使用自身的方法
    hibernate manytoone中的lazy EAGER
    autowire异常的三个情况
    (转)js的call和apply
    mysql创建外键出错(注意数据库表字段排序)
    easyui datagrid
    ava.lang.NullPointerException的一般解决方法
    spring简单事务管理器
    关于使用注解出现BeanCreationException或者NameNotFoundException的解决方法
  • 原文地址:https://www.cnblogs.com/sportdog/p/4920498.html
Copyright © 2011-2022 走看看