創(chuàng)建子線程對(duì)Android進(jìn)行網(wǎng)絡(luò)訪問
//主線程中接收子線程發(fā)送的消息并處理 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(); } } };
上面代碼是在主線程中接收子線程發(fā)送的消息,根據(jù)消息標(biāo)識(shí)處理后續(xù)操作。下面是子線程代碼:
開啟子線程服務(wù):new Thread(runnable).start();
子線程執(zhí)行的任務(wù):
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);// 這是數(shù)據(jù)標(biāo)志,在接收的時(shí)候方便辨認(rèn) 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
是數(shù)據(jù)標(biāo)識(shí),hadata
是需要發(fā)送的數(shù)據(jù)??梢允?code>int,string
,object
等。msg.what = 1
是設(shè)置的消息標(biāo)識(shí)位,在接收消息的時(shí)候作為區(qū)分消息。
hadata=getDateFromSever(url2)
是訪問url2
獲取數(shù)據(jù)的方法:具體實(shí)現(xiàn)如下:
//進(jìn)行http請(qǐng)求并獲取返回的數(shù)據(jù) 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; }
以上所述是小編給大家介紹的創(chuàng)建子線程對(duì)Android進(jìn)行網(wǎng)絡(luò)訪問,希望對(duì)大家有所幫助。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Android用RecyclerView實(shí)現(xiàn)動(dòng)態(tài)添加本地圖片
本篇文章主要介紹了Android用RecyclerView實(shí)現(xiàn)動(dòng)態(tài)添加本地圖片,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08Android內(nèi)存泄漏檢測(cè)工具LeakCanary
在Android的性能優(yōu)化中,內(nèi)存優(yōu)化是必不可少的點(diǎn),而內(nèi)存優(yōu)化最重要的一點(diǎn)就是解決內(nèi)存泄漏的問題,在Android的內(nèi)存泄漏分析工具也不少,比如PC端的有:AndroidStudio自帶的Android?Profiler、MAT等工具;手機(jī)端也有,就是我們今天要介紹的LeakCanary2023-04-04Android recyclerview實(shí)現(xiàn)拖拽排序和側(cè)滑刪除
這篇文章主要為大家詳細(xì)介紹了Android recyclerview實(shí)現(xiàn)拖拽排序和側(cè)滑刪除,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02Android判斷手機(jī)是否聯(lián)網(wǎng)及自動(dòng)跳轉(zhuǎn)功能(收藏版)
這篇文章主要介紹了Android判斷手機(jī)是否聯(lián)網(wǎng)及自動(dòng)跳轉(zhuǎn)功能(收藏版),在一些手機(jī)端連接wifi我們經(jīng)常會(huì)遇到這樣的功能,今天小編通過實(shí)例截圖給大家介紹下,需要的朋友可以參考下2019-11-11Android—基于微信開放平臺(tái)v3SDK開發(fā)(微信支付填坑)
這篇文章主要介紹了Android—基于微信開放平臺(tái)v3SDK開發(fā)(微信支付填坑),具有一定的參考價(jià)值,有需要的可以了解一下。2016-11-11OpenGL Shader實(shí)例分析(1)Wave效果
這篇文章主要為大家詳細(xì)介紹了OpenGL Shader實(shí)例分析第一篇,Wave效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02Okhttp、Retrofit進(jìn)度獲取的方法(一行代碼搞定)
本篇文章主要介紹了Okhttp、Retrofit進(jìn)度獲取的方法(一行代碼搞定),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04Android基于OpenGL的GLSurfaceView創(chuàng)建一個(gè)Activity實(shí)現(xiàn)方法
這篇文章主要介紹了Android基于OpenGL的GLSurfaceView創(chuàng)建一個(gè)Activity實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Android中OpenGL圖形操作類GLSurfaceView的功能、用法及相關(guān)使用技巧,需要的朋友可以參考下2016-10-10Android Activity的生命周期與啟動(dòng)模式全面解讀
雖然說我們天天都在使用Activity,但是你真的對(duì)Activity的生命機(jī)制完全了解了嗎?Activity的生命周期方法只有七個(gè),但是其實(shí)那只是默認(rèn)的情況。也就是說在其他情況下,Activity的生命周期可能不會(huì)是按照我們以前所知道的流程,這就要說到Activity的啟動(dòng)模式2021-10-10