zoukankan      html  css  js  c++  java
  • Android中Handler的使用

    当我们在处理下载或是其他需要长时间执行的任务时,如果直接把处理函数放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();
    }

     
  • 相关阅读:
    用Python在地图上模拟疫情扩散
    Word VBA 单元格处理
    SAR目标检测相关文献整理
    anaconda+pycharm+flask环境搭建
    航空遥感图像(Aerial Images)目标检测数据集汇总
    VS2017新建或拷贝项目编译时出现:找不到 Windows SDK 版本8.1.请安装所需的版本的 Windows SDK
    opencv图像裁剪与拼接
    OpenCV之光流法运动目标跟踪
    R = [obj for obj in recs[imagename] if obj['name'] == classname] KeyError:'1'
    xml.etree.ElementTree.ParseError: not well-formed (invalid token)
  • 原文地址:https://www.cnblogs.com/guop/p/4989112.html
Copyright © 2011-2022 走看看