• 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     }
  • 相关阅读:
    Jump Game II
    Trapping Rain Water
    First Missing Positive
    Median of Two Sorted Arrays
    noip2012开车旅行 题解
    AC自动机专题总结
    初探数位DP
    斯坦纳树 [bzoj2595][wc2008]游览计划 题解
    [bzoj3244][noi2013]树的计数 题解
    网络流模型小结
  • 原文地址:https://www.cnblogs.com/Evelia/p/3531528.html
Copyright © 2020-2023  润新知