zoukankan      html  css  js  c++  java
  • Android 异步加载

    Android 4.0 后 貌似规定了 在主线程中不允许访问网络,在子线程中不允许修改UI. 否则会抛出NetworkOnMainThreadException 异常

    解决办法: 采用继承 AsyncTask<String, String, String>
    实现AsyncTask中定义的几个方法

    onPreExecute()

    doInBackground(Params...)

    onProgressUpdate(Progress...)

    onPostExecute(Result)

    onCancelled()

    注意:

    Task的实例必须在UI 线程中创建
     execute方法必须在UI 线程中调用

     1  private class MyTask extends AsyncTask<String, Integer, String>
     2     {
     3 
     4         @Override
     5         protected void onPreExecute() {
     6             super.onPreExecute();
     7             //界面提示
     8         }
     9         @Override
    10         protected String doInBackground(String... para) {
    11             //getWebService
    12             //获取网络数据
    13             return null;
    14         }
    15         @Override
    16         protected void onProgressUpdate(Integer... values) {
    17             super.onProgressUpdate(values);
    18             //显示当前进度情况
    19         }        
    20         @Override
    21         protected void onPostExecute(String result) {
    22             super.onPostExecute(result);
    23             //更新UI
    24         }
    25         @Override
    26         protected void onCancelled() {
    27             super.onCancelled();
    28             //用户取消
    29         }
    30     }
  • 相关阅读:
    团队项目-需求分析报告
    团队项目-选题报告
    第一次结对编程作业
    第一次编程作业
    第一次作业
    第10组 Beta冲刺(2/4)
    第10组 Beta冲刺(1/4)
    第10组 Alpha冲刺(4/4)
    第10组 团队Git现场编程实战
    第二次结对编程作业
  • 原文地址:https://www.cnblogs.com/Evelia/p/3531528.html
Copyright © 2011-2022 走看看