Android 异步加载

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

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

onPreExecute()

doInBackground(Params...)

onProgressUpdate(Progress...)

onPostExecute(Result)

onCancelled()

注意:

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

  private class MyTask extends AsyncTask<String, Integer, String>
{ @Override
protected void onPreExecute() {
super.onPreExecute();
//界面提示
}
@Override
protected String doInBackground(String... para) {
//getWebService
//获取网络数据
return null;
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
//显示当前进度情况
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
//更新UI
}
@Override
protected void onCancelled() {
super.onCancelled();
//用户取消
}
}
上一篇:IOS学习资源收集--关于动画的代码学习资源总汇(很棒的动画效果哦)


下一篇:Couchbase上发布的关于NoSQL的技术论文