创建子线程对Android进行网络访问

 更新时间:2021年11月26日 11:04:25   作者:TF 同飞  
这篇文章介绍了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是需要发送的数据。可以是intstringobject等。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进行网络访问,希望对大家有所帮助。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • RxJava2配置及使用详解

    RxJava2配置及使用详解

    这篇文章主要介绍了RxJava2配置及使用详解,RxJava2.0是一个非常棒的流式编程,有兴趣的可以了解一下
    2017-06-06
  • Android开发中如何解决Fragment +Viewpager滑动页面重复加载的问题

    Android开发中如何解决Fragment +Viewpager滑动页面重复加载的问题

    这篇文章主要介绍了Android开发中如何解决Fragment +Viewpager滑动页面重复加载的问题 ,需要的朋友可以参考下
    2017-07-07
  • Android实现自定义滑动式抽屉菜单效果

    Android实现自定义滑动式抽屉菜单效果

    这篇文章主要为大家详细介绍了Android实现自定义滑动式抽屉效果菜单,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • Android自定义View实现随机数验证码

    Android自定义View实现随机数验证码

    这篇文章主要为大家详细介绍了Android如何利用自定义View实现随机数验证码效果,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-06-06
  • Flutter中如何实现无Context跳转详解

    Flutter中如何实现无Context跳转详解

    这篇文章主要给大家介绍了关于Flutter中如何实现无Context跳转的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Flutter具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • Android曲线更圆滑的签名画板

    Android曲线更圆滑的签名画板

    这篇文章主要为大家详细介绍了Android曲线更圆滑的签名画板,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • Android解析XML的三种方式SAX、Pull、Dom

    Android解析XML的三种方式SAX、Pull、Dom

    这篇文章主要为大家详细介绍了Android解析XML的三种方式:SAX、Pull、Dom,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Android 使用Zbar实现扫一扫功能

    Android 使用Zbar实现扫一扫功能

    这篇文章主要介绍了Android 使用Zbar实现扫一扫功能,本文用的是Zbar实现扫一扫,因为根据本人对两个库的使用比较,发现Zbar解码比Zxing速度要快,实现方式也简单,需要的朋友可以参考下
    2023-03-03
  • Android开发使用Message对象分发必备知识点详解

    Android开发使用Message对象分发必备知识点详解

    这篇文章主要为大家介绍了Android开发使用Message对象分发必备知识点详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • Kotlin中的handler如何避免内存泄漏详解

    Kotlin中的handler如何避免内存泄漏详解

    Handler,我们已经相当熟悉了,而且经常用得不亦乐乎,但就是因为太熟悉了,才会偶尔被它反捅一刀,血流不止,下面这篇文章主要给大家介绍了关于Kotlin中handler如何避免内存泄漏的相关资料,需要的朋友可以参考下。
    2017-12-12

最新评论