AsyncTask获取网络数据

Android Studio AsyncTask 请求网络数据 Android Studio asyncTask 请求网络数据 package com.wzq.mapp; import android.graphics.Bitmap; import android.os.AsyncTask; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; impor... 阅读详情

AsyncTask 实现主要

方法1 :doInBackground   这是自动生成的,这个方法执行异步任务运行在子线程中

方法2:onProgressUpdate   (这个需要自己写)这个就是进度条,要做进度条的话还得加个 onPreExecute 方法,这个是第一执行,在doInBackground前面调用(这个不怎么重要,就不写了,可以上网看那些大牛写的)

方法3:onPostExecute   (这个也需要自己写)这个就是主线程。里面做UI更新,这个方法在主线程执行,doInBackground任务执行的结果作为这个方法的参数返回

其中1,3是必须写的,进度条 的话要搭配onPreExecute。下面就是代码


private void getDatas(String path) {


        new AsyncTask<String, Void, String>() {

            private String s;
            //onPostExecute这个方法需要自己写,相当于handler   RunOnUIThread,更新UI界面
            @Override
            protected void onPostExecute(String s) {

                super.onPostExecute(s);

                 //用gson解析网上的json串,需要导入gson依赖,这个是我用的json串,自己看情况修改

                Gson gson = new Gson();
                DateBean dateBean = gson.fromJson(s, DateBean.class);
                List<DateBean.ItemListBeanX.DataBeanX.ItemListBean> itemList1 = dateBean.getItemList().get(0).getData().getItemList();
                myAdapter adapter = new myAdapter(itemList1);
                listView.setAdapter(adapter);

            }

             //就是子线程,用来做耗时操作的

            @Override
            protected String doInBackground(String... strings) {
                try {
                    String string = strings[0];
                    URL url = new URL(string);
                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();

                    connection.setRequestMethod("GET");

                    connection.setConnectTimeout(5000);
                    connection.setReadTimeout(5000);
                    int code = connection.getResponseCode();
                    if (code==HttpURLConnection.HTTP_OK){
                        InputStream is = connection.getInputStream();
                        s = StreamTools.readFromFile(is);   //StreamTools工具类,可以看我另外一个
                        return s;
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return null;
            }

        }.execute(path); //这个很关键,execute就是告诉 AsyncTask开始执行了,启动了。 一定要写

    }


这个就是简单点的AsyncTask 了,不过要注意:

            优缺点很明显,优点就是简单快捷,缺点就是当有多个异步操作时,就变得复杂起来,而且AsyncTask在更新UI时,特别是大量的数据时候,放弃吧。

Android两种方式获取网络数据 不得不吐槽一下Android的臃肿,按照一般的Java程序,直接调用就好,但是Android还必须开创线程,经过内部消息机制处理后才能与UI交互。        下面简单说说这次用Android与网络通信的步骤吧。 方法一:New Thread 后再使用Handler,在Handler中调用。 (1) 新建AccessNetwok类 public class AccessNetwork i 阅读详情

相关推荐

【dify】 dify环境变量配置说明

SMTP_SERVER、SMTP_PORT、SMTP_USERNAME、SMTP_PASSWORD、SMTP_USE_TLS、SMTP_OPPORTUNISTIC_TLS:当 MAIL_TYPE 为 smtp 时,SMTP服务器的相关配置。UPLOAD_IMAGE_FILE_SIZE_LIMIT、UPLOAD_VIDEO_FILE_SIZE_LIMIT、UPLOAD_AUDIO_FILE_SIZE_LIMIT:分别为上传图像、视频、音频文件的大小限制(MB)。

tonysh_zds的博客 7355

android开发异步加载网络数据AsyncTask的使用

一、异步任务加载网络数据: 在android中提供了一个异步任务的类AsyncTask,简单来说,这个类中的任务是运行在后台线程中的,并可以将结果放到UI线程中进行处理,它定义了三种 泛型,分别是Params、Progress和Result,分别表示请求的参数、任务的进度和获得的结果数据。 1、使用原因: 1)其中使用了线程池技术,而且其中的方法很容易实现调用。 2)可以调用相关

l1371985810的博客 3044

光模块数字诊断监控(DDM)功能

DDM(Digital Diagnostic Monitoring)数字诊断监控,由行业组织SFF Committee制定,遵循SFF-8472多源协议定义的标准参数而工作,规范了光模块和网络设备的软硬件所需遵循的标准数值或范围,确保了网络设备供应商和光模块供应商之间所提供产品的互操作性不同。:通过监测激光器的偏置电流来预测激光器的劣化,从而确保在故障发生之前将业务切换到备用链路上或替换有可能故障的光模块,因此起到了预测光模块寿命的作用。光模块DDM信息可以通过SNMP读取光模块的接收光功率和发射光功率。.

光模块的博客 2299

Android Studio利用异步任务AsyncTask发送post请求获取json数据

AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程. 使用的优点: l  简单,快捷 l  过程可控 使用的缺点: l  在使用多个异步操作和并需要进行Ui变更时,就变得复杂起来. 2 )Handler异步实

守护者ly的专栏 1万+

百度飞桨EasyDL图像分类:收费口车辆类型自动识别

车辆类型识别在高速收费路口的应用中,场景相对单一且拍摄角度一致,因此首次训练模型效果优异,准确率达到了95%,鉴于市面上的车辆类型不断更新迭代且部分车辆的主要特征也不断发生变化,因此可在模型投入应用后,持续收集模型实际运行过中产生的数据,定期添加数据进行模型迭代,保证模型效果。企业将AI模型应用到实际场景中以实现停车费用、过路费用的自动计算,在收费口中由相机对每个车辆进行拍摄,拍摄到的图片传输到预测设备上进行类型识别,基于识别出来的车辆类型自动进行费用计算。该功能可在发起训练时选选择对应的开关打开即可。..

PaddlePaddle 1670

Proteus仿真实战:用STM32F103C8T6输入捕获模式精准测量PWM频率(附完整代码)

本文详细解析了如何在Proteus仿真环境中,利用STM32F103C8T6的输入捕获模式精准测量PWM频率。文章从输入捕获的工作原理、Proteus电路搭建、模块化代码实现到调试优化,提供了完整的实战指南和代码示例,帮助开发者深入理解并掌握这一关键技术。

weixin_29158047的博客 257

从AsyncTask中获取数据的问题

public class GetData extends AsyncTask<String, Void, String> { DataDownloadListener dataDownloadListener; public GetData() { } public void setDataDownloadL...

weixin_30877227的博客 244

abaqus wcm插件下载_Abaqus随机短纤维增强复合材料建模插件

文末附Abaqus随机短纤维增强复合材料建模插件下载链接前言短纤维增强复合材料相对于长纤维增强复合材料来说更容易制备,且短纤维的填充性能略有改善,可制造复杂产品,广泛应用于车辆、航空航天、建筑等行业,对短纤维增强复合材料进行细观力学分析,可对其宏观力学性能进行预测、分析破坏机理等。接下来对随机短纤维增强复合材料建模插件进行介绍。NO.1 【算法简介】难点一:此插件核心在于判断生成的纤维是...

weixin_39974882的博客 2833

Asynctask获取网络数据使用

主界面代码如下,仅仅为了记录Asynctask的使用。业务代码写在Activity里面肯定不好的。最好使用MVP模式来实现。 public class MainActivity extends Activity {     private static String url = "http://www.imooc.com/api/teacher?type=

小队长的博客 795

PoE 的三大国际标准:PoE、PoE+、PoE++

很多人知道 PoE 能“一根网线,既供电又传数据”,但鲜少有人能说清楚:PoE 供电到底分几种标准?差别有多大?哪些设备要用 PoE,哪些必须上 PoE+ 或 PoE++?今天,我们就来一次彻底的“拆解”,把 PoE 的三大国际标准——讲得明明白白,顺便也帮你厘清网络工程中的常见“供电疑惑”。

网络技术联盟站 1546

物料分类账-返工工单(自身)差异分摊逻辑

如上图所示,当月入库的全部消耗,而返工消耗的数量为100PCS,所以返工消耗占总消耗的比例为100pcs/(205pcs+100pcs)=0.327868852。备注:红色箭头的物料号为产品自己本身所产生的价差,就是返工工单所承担的差异,而我们要计算的就是这个值,所以计算价差不会包括此项。价差合计就是不包括初始分摊的价差9153.7,剩下的价差合计就是返工工单自身所承担的差异4465.21。每一次返工工单所承担的差异都会按照价差*承担比例去计算承担的差异,知道承担完所有差异。

Yeol827的博客 2487

异步任务加载网络数据——AsyncTask使用

AsyncTask类简单介绍 Android从1.5开始引入了AsyncTask这个类,AsyncTask内部使用Java 1.5的并发库比普通初级Android开发者编写的Thread+Handler稳定很多 AsyncTask封装了Thread和Handler,使我们用起来更加方便,不用去关注Handler。由于后台线程不能更新UI,而很多情况下,我们在后台线程做完一件事后,一般都会更新UI,一

it_Y的博客 5452

Mysql授权允许远程访问

前言 Mysql授权允许远程登录后,linux中安装的mysql可以与Navicat for Mysql(可视化)等连接,在可视化软件下管理数据库。 注意:不能使用临时密码 设置密码命令: alter user 'root'@'localhost' identified by '这里是你的密码'; 授权允许远程访问 一、授权命令: grant all privileges on *.* to '...

🏆 前端领域优质创作者 3万+

如何用线程Asynctask获取网络数据

import android.os.AsyncTask; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.view.ViewGroup; import a

mayn666的博客 265

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

AsyncTask+HttpURLConnection网络获取数据

import android.os.AsyncTask; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; /**  * Created by john on 2018/1/12.  */ public class MyTask extends

qq_41554204的博客 292

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

AsyncTask 网络获取图片和Json数据加载到ListView上

package com.example.myzhoukaolianxi; import android.graphics.Bitmap; import android.os.AsyncTask; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View;

zhang937008487的博客 608

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

AsyncTask应用,获取在线网络图标Bitmap数据

本文是对AsynckTask的应用,在获取网络数据中一般需要在主线程中另开一个子线程来进行网络数据的获取,但是会出现获取数据不同步的问题,使用AsyncTask可以简单的解决这一问题。下面以获取网络图标的bitmap数据为例。

qq_43158129的博客 244

从网络获取数据(1)从newThread到AsyncTask在到IntentService

概述 安卓不允许在UI线程中发送网络请求,因此必须新启动一个线程。 如果我们在活动中new Thread,这样就会有问题,这个线程会随着活动的生命周期结束而结束,如果活动的命比这个线程短,活动死掉了,线程还没有进行完,然后也不幸 挂了,这样,获取数据的任务就相当于是失败了,这肯定是不可以的啊。所以我们需要使用一个后台进程,比如AsyncTask,但是这个AsyncTask也要能快速完成(最多

qingziguanjun1的专栏 781

XListView+ImageLoader+AsyncTask+网络获取数据综合

XListView+ImageLoader+AsyncTask+网络获取数据综合

peixiaopao的博客 345

Android使用AsyncTask异步线程网络通信获取数据(get json)

摘要:   android 4.0以上强制要求不能在主线程执行耗时的网络操作,网络操作需要使用Thead+Handler或AsyncTask,本文将介绍AsyncTask的使用方法。 内容: 1.添加HttpTask.java public class HttpTask extends AsyncTask&lt;String, Integer, String&gt; { pr...

weixin_34077371的博客 231

简单的异步获取网络数据

AsyncTask asyncTask = new AsyncTask() {             @Override             protected String doInBackground(Void... voids) {                 String path = "网络数据接口";                 try {         

androidyhr的博客 522

AsyncTask实现异步任务

在33guide项目中取网络数据用的最多的是异步,也就是AsyncTask,其实就是从网络中取一段JSON格式的数据,在AsyncTask实现的方法中解析以及绑定数据到页面上去,其实网上已经有很多讲述关于AsyncTask的文章的,大致都是一样的,但是每个人学习的心得都是不同的,所以我也就讲讲我的心得。 页面布局我是用的ListView,在onCreate中最好是以方法的形式调用 ...

weixin_30252709的博客 86

new Thread+AsyncTask网络请求

import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.AppCompatActivity; import android.wi

566

AsyncTask

implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this).build(); ImageLoader.getInstance(...

Day_feeling的博客 229
上一篇: 检查网络状态(Android3.0以上)
下一篇: 读取流的服务类
thecodeis6
博客等级 码龄9年 14粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值