当我们在处理下载或是其他需要长时间执行的任务时,如果直接把处理函数放Activity的OnCreate或是OnStart中,会导致执行过程中整个Activity无响应,如果时间过长,程序还会挂掉。Handler就是把这些功能放到一个单独的线程里执行,与Activity互不影响。


import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;

public class HandleActivity extends Activity {
private ImageView imageView = null;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
//你的操作
break;
case 1:
//你的造作
break;
}
super.handleMessage(msg);
}
}; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); thread.start();
} Thread thread = new Thread(new Runnable() { public void run() {
Message message = new Message();

       message.what = 1;
       message.obj = obj;

       handler.sendMessage(message);

        }
}); }
也可以直接写在一个方法内实现

private void getRealTimeBills(final String date)
{
  final Handler handler = new Handler()

  {
    @Override
    public void handleMessage(Message msg)

    {
      if(msg.what == 1)
      {
        realTimeBills = (RealTimeBills) msg.obj;
      }
    }
  };
  new Thread(){
  @Override
  public void run()

  {
    Message message = new Message();
    try

    {
      realTimeBills = context.getRealTimeBills(date);
      if(realTimeBills.getResultMessage().OK())
      {
        message.what = 1;
        message.obj = realTimeBills;
      }

    catch (Exception e)

    {
      e.printStackTrace();
    }
    handler.sendMessage(message);
   }
  }.start();
}

 

最新文章

  1. spring源码分析之cache注解
  2. cursor中的url整理
  3. 。Java注意事项
  4. Blend Tree Type
  5. Behavior-Based Intelligence
  6. ionic中的生命周期函数
  7. LINQ to Entities 查询注意事项
  8. mapreduce框架详解
  9. 面向对象 "一"
  10. mybatis 详解(四)------properties以及别名定义
  11. spring+mybaits多数据源使用
  12. [物理学与PDEs]第2章第2节 粘性流体力学方程组 2.4 粘性热传导流体动力学方程组
  13. WEB API 系列(二) Filter的使用以及执行顺序
  14. 【oracle入门】数据库系统范式
  15. spring框架篇(一)-------spring简介与配置文件使用控制反转事例
  16. JS 点击复制
  17. 深入理解CSS系列(一):理解CSS的盒子模型
  18. Scala进阶之路-Scala中的枚举用法案例展示
  19. linux php命令安装
  20. CentOS中配置Kafka集群

热门文章

  1. 导出数据库数据成txt格式
  2. sql server 2012 数据库日志文件过大,怎么缩小?
  3. 如何在Mac OS中安装 wget
  4. OpenGL12-shader(GLSL)着色语言3-(属性参数)(代码已上传)
  5. c++面试题中经常被面试官面试的小问题总结(一)(本篇偏向基础知识)
  6. ggplot2基础学习
  7. Go 协程编程感悟
  8. docker 微镜像-alpine
  9. ASP.NET Core 中的实时框架 SingalR
  10. setInterval与setTimeout的区别