Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> [android] 兩種異步方式,android異步

[android] 兩種異步方式,android異步

編輯:關於android開發

[android] 兩種異步方式,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);
        }

    }

 

 

 

使用Thread和Handler異步獲取信息

 

    /**
     * 使用線程和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");

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved