Http与后台任务
发布日期:2021-04-30 21:02:45
浏览次数:91
分类:精选文章
本文共 1594 字,大约阅读时间需要 5 分钟。
网络基本连接代码
要从指定URL获取原始数据并返回一个字节流数组,可以使用以下代码实现:
public byte[] getUrlBytes(String urlSpec) throws IOException { URL url = new URL(urlSpec); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); try { ByteArrayOutputStream out = new ByteArrayOutputStream(); InputStream in = connection.getInputStream(); if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) { return null; } byte[] buffer = new byte[1024]; int bytesRead = 0; while ((bytesRead = in.read(buffer)) > 0) { out.write(buffer, 0, bytesRead); } out.close(); return out.toByteArray(); } finally { connection.disconnect(); }} 需要在Android应用中添加网络使用权限:
后台任务
在Android应用中,可以使用AsyncTask来执行后台任务。以下是一个示例:
private class FetchItemsTask extends AsyncTask> { @Override protected ArrayList - doInBackground(Void... params) { return new FlickrFetchr().fetchItems(); }}
要在主线程启动后台任务,可以使用以下代码:
new FetchItemsTask().execute();
请注意,Android系统会监控主线程的响应情况。如果主线程无法响应重要事件(如按下返回键),应用可能会无响应。
创建正确转义的参数化URL
要创建一个参数化的URL,可以使用Uri类来实现。以下是一个示例:
String url = Uri.parse(ENDPOINT) .buildUpon() .appendQueryParameter("method", METHOD_GET_RECENT) .appendQueryParameter("api_key", API_KEY) .appendQueryParameter(PARAM_EXTRAS, EXTRA_SMALL_URL) .build() .toString(); 从后台回到主线程
onPostExecute方法用于在后台任务完成后返回结果,并在主线程上更新UI。以下是一个示例:
protected void onPostExecute(ArrayList- galleryItems) { mItems = galleryItems; setupAdapter();}
这个方法在doInBackground()执行完毕后才会运行,且是在主线程上执行。
发表评论
最新留言
表示我来过!
[***.240.166.169]2026年05月31日 05时03分48秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
php使用memcached扩展的一个BUG
2023-03-01
PHP内核介绍及扩展开发指南—基础知识
2023-03-01
PHP写日志fwrite和file_put_contents的区别与性能
2023-03-01
PHP函数
2023-03-01
PHP函数__autoload失效原因(与smarty有关)
2023-03-01
PHP函数操作数字和汉字互转(100以内)
2023-03-01
PHP函数方法
2023-03-01
PHP删除指定目录下的所有文件和文件夹 | 删除指定文件
2023-03-01
php判断ip黑名单程序代码
2023-03-01
php判断复选框是否被选中的方法
2023-03-01
PHP判断指定目录下是否存在文件
2023-03-01
php判断数组是否为空
2023-03-01
PHP判断数组是否有重复值、获取重复值
2023-03-01
PHP利用正则表达式实现手机号码中间4位用星号(*)替换显示
2023-03-01
PHP加密与安全的最佳实践
2023-03-01
PHP区分 企业微信浏览器 | 普通微信浏览器 | 其他浏览器
2023-03-01
php原生代码怎么连表查询,PHP tp5中使用原生sql查询代码实例
2023-03-01
PHP去掉转义符
2023-03-01
php反射api
2023-03-01
PHP反射ReflectionClass、ReflectionMethod 入门教程
2023-03-01