[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");

 

 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/5381.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论