这篇文章介绍了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进行网络访问


基础教程推荐
猜你喜欢
- IOS 播放系统提示音使用总结(AudioToolbox) 2023-03-01
- Flutter绘图组件之CustomPaint使用详解 2023-05-12
- Android开发使用RecyclerView添加点击事件实例详解 2023-06-15
- Android多返回栈技术 2023-04-15
- 解决Android Studio突然不显示logcat日志的问题 2023-02-04
- Android中的webview监听每次URL变化实例 2023-01-23
- iOS开发教程之XLForm的基本使用方法 2023-05-01
- Flutter手势密码的实现示例(附demo) 2023-04-11
- IOS应用内跳转系统设置相关界面的方法 2022-11-20
- android studio按钮监听的5种方法实例详解 2023-01-12