zoukankan      html  css  js  c++  java
  • [android] 两种异步方式

    使用AsyncTask开启子线程获取服务器数据,更新界面UI

     

        /**
         * 异步任务
         * 
         * @author taoshihan
         * 
         */
        public class HttpAsyncTask extends AsyncTask<String, Void, String> {
            /**
             * 在执行后台任务之前执行
             */
            @Override
            protected void onPreExecute() {
                String netInfo = NetUtils.getNetworkInfo(context);
                if ("no".equals(netInfo)) {
                    Toast.makeText(context, "网络连接失败", 0).show();
                } else if ("wifi".equals(netInfo)) {
                    Toast.makeText(context, "wifi连接", 0).show();
                } else if ("mobile".equals(netInfo)) {
                    Toast.makeText(context, "手机流量连接", 0).show();
                }
            }
    
            /**
             * 后台运行,耗时的操作都放在这里,相当于Thread的run方法
             */
            @Override
            protected String doInBackground(String... params) {
                // TODO Auto-generated method stub
                return null;
            }
    
            /**
             * 在执行后台任务之后,可以在这更改UI界面,相当于Handler里面的处理方法
             */
            @Override
            protected void onPostExecute(String result) {
                // TODO Auto-generated method stub
                super.onPostExecute(result);
            }
    
        }

     

     

    使用ThreadHandler异步获取信息

     

        /**
         * 使用线程和Handler
         * @author taoshihan
         *
         */
        public class HttpHandler extends Handler{
            @Override
            public void handleMessage(Message msg) {
                //处理Message
            }
        }
        public class HttpThread extends Thread{
            @Override
            public void run() {
                //发送Message
                new HttpHandler().sendMessage(new Message());
            }
        }

     

    new HttpThread().start();
    new HttpAsyncTask().execute("htp://www.baidu.com");

     

  • 相关阅读:
    16解释器模式Interpreter
    15适配器模式Adapter
    14桥接模式Bridge
    13组合模式Composite
    12外观模式Facade
    11代理模式Proxy
    10享元模式Flyweight
    09观察者模式ObServer
    08策略模式Strategy
    07装饰模式Decorator
  • 原文地址:https://www.cnblogs.com/taoshihan/p/5632356.html
Copyright © 2011-2022 走看看