创建子线程对Android进行网络访问
//主线程中接收子线程发送的消息并处理 private Handler handler=new Handler(){ @SuppressLint("HandlerLeak") public void handleMessage(Message msg){ try { switch (msg.what){ case 0: String Listeningresponse= msg.getData().getString("Listeningdate"); case 1: String response = msg.getData().getString("date"); case 2: vsnfilename=msg.getData().getString("vsndate"); default: Log.e(TAG, " handler fail in send" ); } }catch (Exception e){ e.printStackTrace(); } } };
上面代码是在主线程中接收子线程发送的消息,根据消息标识处理后续操作。下面是子线程代码:
开启子线程服务:new Thread(runnable).start();
子线程执行的任务:
Runnable runnabletday = new Runnable(){ @Override public void run() { try { //String url=ResourceMethod.UrlSplicingMinute(); String url2=ResourceMethod.UrlSplicingDay(); hadata=getDateFromSever(url2); Message msg = new Message(); Bundle bundle =new Bundle(); bundle.putString("date", hadata);// 这是数据标志,在接收的时候方便辨认 msg.setData(bundle); msg.what = 1; handler.sendMessage(msg); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } };
代码 Bundle bundle =new Bundle();
bundle.putString("date", hadata)
中data
是数据标识,hadata
是需要发送的数据。可以是int
,string
,object
等。msg.what = 1
是设置的消息标识位,在接收消息的时候作为区分消息。
hadata=getDateFromSever(url2)
是访问url2
获取数据的方法:具体实现如下:
//进行http请求并获取返回的数据 public String getDateFromSever(String url) { try { OkHttpClient client = new OkHttpClientFactory().getInstance(); Request request = new Request.Builder() .url(url) .get() .build(); Response response = client.newCall(request).execute(); Log.d(TAG, "Ipaws response="+response); String responseData = response.body().string(); if (response.isSuccessful()) { return responseData; }else { Log.d(TAG, "responseData: error"); } } catch (Exception e) { e.printStackTrace(); } return null; }
以上所述是小编给大家介绍的创建子线程对Android进行网络访问,希望对大家有所帮助。在此也非常感谢大家对脚本之家网站的支持!
相关文章
Android用RecyclerView实现动态添加本地图片
本篇文章主要介绍了Android用RecyclerView实现动态添加本地图片,具有一定的参考价值,有兴趣的可以了解一下2017-08-08Android recyclerview实现拖拽排序和侧滑删除
这篇文章主要为大家详细介绍了Android recyclerview实现拖拽排序和侧滑删除,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-02-02Android—基于微信开放平台v3SDK开发(微信支付填坑)
这篇文章主要介绍了Android—基于微信开放平台v3SDK开发(微信支付填坑),具有一定的参考价值,有需要的可以了解一下。2016-11-11Okhttp、Retrofit进度获取的方法(一行代码搞定)
本篇文章主要介绍了Okhttp、Retrofit进度获取的方法(一行代码搞定),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-04-04Android基于OpenGL的GLSurfaceView创建一个Activity实现方法
这篇文章主要介绍了Android基于OpenGL的GLSurfaceView创建一个Activity实现方法,结合实例形式分析了Android中OpenGL图形操作类GLSurfaceView的功能、用法及相关使用技巧,需要的朋友可以参考下2016-10-10Android Activity的生命周期与启动模式全面解读
虽然说我们天天都在使用Activity,但是你真的对Activity的生命机制完全了解了吗?Activity的生命周期方法只有七个,但是其实那只是默认的情况。也就是说在其他情况下,Activity的生命周期可能不会是按照我们以前所知道的流程,这就要说到Activity的启动模式2021-10-10
最新评论