iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android之使用Android-query框架开发实战(二)
  • 694
分享到

Android之使用Android-query框架开发实战(二)

实战Android 2022-06-06 09:06:58 694人浏览 八月长安
摘要

在上篇文章跟大家介绍了Android之使用Android-query框架开发实战(一),本文继续跟大家介绍有关Android-query框架。具体内容请看下文。 异步网络:

在上篇文章跟大家介绍了Android之使用Android-query框架开发实战(一),本文继续跟大家介绍有关Android-query框架。具体内容请看下文。

异步网络

1. 添加权限:<uses-permission android:name="android.permission.INTERNET" /> 

2. 支持的类型 

JSONObject
jsONArray
String (html, XML)
XmlDom (XML parsing)
XmlPullParser (Large XML files)
byte array
User defined custom type (TransfORMer)
Bitmap

3. 以Json数据为例,注意,红色部分是随你请求的数据类型一起改变


String url = "Http://www.Google.com/uds/GnewsSearch?q=Obama&v=1.0";  
  aq.ajax(url, JSONObject.class, new AjaxCallback<JSONObject>() {
    @Override
    public void callback(String url, JSONObject json, AjaxStatus status) {      
      if(json != null){
        //successful ajax call, show status code and json content
        Toast.makeText(aq.getContext(), status.getCode() + ":" + json.toString(), Toast.LENGTH_LONG).show();      
      }else{
        //ajax error, show error code
        Toast.makeText(aq.getContext(), "Error:" + status.getCode(), Toast.LENGTH_LONG).show();
      }
    }
 }); 

      上面的形式也可以写成下面一样,他们是无条件对等


public void asyncJson(){  
  //perform a Google search in just a few lines of code  
  String url = "http://www.google.com/uds/GnewsSearch?q=Obama&v=1.0";    
  aq.ajax(url, JSONObject.class, this, "jsonCallback");  
}
public void jsonCallback(String url, JSONObject json, AjaxStatus status){
  if(json != null){    
    //successful ajax call   
  }else{   
    //ajax error
  }
} 
  

再举一个使用AQuery的XmlDom解析xml的例子,如果XML过大,使用XMLPullParser


public void xml_ajax(){   
  String url = "https://picasaWEB.google.com/data/feed/base/featured?max-results=8";    
  aq.ajax(url, XmlDom.class, this, "picasaCb");   
}

public void picasaCb(String url, XmlDom xml, AjaxStatus status){
 // 返回一系列为entry的结点,并把其add进list
  List<XmlDom> entries = xml.tags("entry");    
  List<String> titles = new ArrayList<String>();
  String imageUrl = null;
  for(XmlDom entry: entries){
    titles.add(entry.text("title")); //循环把第一个结点为title的文本放进title
    imageUrl = entry.tag("content", "type", "image/jpeg").attr("src");//把第一个结点为content,属性为type,属性值为image/jpeg的src属性值赋予给imageUri
  }
  aq.id(R.id.image).image(imageUrl);
}   

4. 如果你想指定保存文件的位置,使用download方法


String url = "https://picasaweb.google.com/data/feed/base/featured?max-results=16";    
File ext = Environment.getExternalStorageDirectory();
File target = new File(ext, "aquery/myfolder/photos.xml");    
aq.progress(R.id.progress).download(url, target, new AjaxCallback<File>(){
  public void callback(String url, File file, AjaxStatus status) {
    if(file != null){
      showResult("File:" + file.length() + ":" + file, status);
    }else{
      showResult("Failed", status);
    }
  }
 });

5. 自定义类型(文档例子是gson数据使用对象解析),详细见文档

6. 使用Http Post (Multiple)


private void aync_multipart(){  
  String url = "https://graph.facebook.com/me/photos";  
  Map<String, Object> params = new HashMap<String, Object>();
  params.put("message", "Message");  
  //Simply put a byte[] to the params, AQuery will detect it and treat it as a multi-part post
  byte[] data = getImageData();
  params.put("source", data);  
  //Alternatively, put a File or InputStream instead of byte[]
  //File file = getImageFile();   
  //params.put("source", file);  
  AQuery aq = new AQuery(getApplicationContext());
  aq.auth(handle).ajax(url, params, JSONObject.class, this, "photoCb");  
}

7. 使用ajax是很容易达到缓存


String url = "http://www.google.com";
// 返回最近15分钟内的缓存副本,如果expire为-1,内容将会立即更新且缓存
long expire = 15 * 60 * 1000;
aq.ajax(url, String.class, expire, new AjaxCallback<String>() {
 @Override
 public void callback(String url, String html, AjaxStatus status) {  
  showResult(html);
 }  
});

8. 使缓存无效


public void callback(String url, JSONObject json, AjaxStatus status) {
  if(json != null){
    if("1".equals(json.optString("status"))){
      //do something
    }else{
      // 不缓存
      status.invalidate();
    }
  }
}

9. 同步调用:如果ajax调用是在新开的线程,sync方法能够阻塞线程,直到ajax调用完毕,如果sync方法用在主线程将会引起Exception


String url = "http://www.google.com/uds/GnewsSearch?q=Obama&v=1.0";  
AjaxCallback<JSONObject> cb = new AjaxCallback<JSONObject>();   
cb.url(url).type(JSONObject.class);   
aq.sync(cb);
JSONObject jo = cb.getResult();
AjaxStatus status = cb.getStatus();

以上就是小小编跟大家就介绍的Android之使用Android-query框架开发实战(二),希望大家喜欢。

您可能感兴趣的文章:六款值得推荐的android(安卓)开源框架简介Android Retrofit 2.0框架上传图片解决方案简略分析Android的Retrofit应用开发框架源码举例讲解Android应用开发中OTTO框架的基本使用Android通用流行框架大全【整理】Android中XUtils3框架使用方法详解(一)Android AndBase框架使用封装好的函数完成Http请求(三)Android最基本的异步网络请求框架Android学习之Flux架构入门


--结束END--

本文标题: Android之使用Android-query框架开发实战(二)

本文链接: https://www.lsjlt.com/news/26500.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android开发Compose框架使用开篇
    目录Compose的诞生Compose好处Compose 架构@Composable的背后智能重组真的那么智能吗最后Compose的诞生 在2019年的谷歌IO大会上,Compose...
    99+
    2024-04-02
  • Vue3+SpringFramework框架开发实战
    目录引言一、环境搭建二、创建Vue3组件三、创建Spring控制器四、配置Spring项目五、使用Vue3组件和Spring控制器六、结论引言 Vue3是最新版的Vue框架,它与Sp...
    99+
    2023-05-15
    Vue3 Spring Framework框架 Spring Framework
  • Android开发之PreferenceActivity的使用
    PreferenceActivity是Android中的一个特殊的Activity,用于展示和管理应用程序的偏好设置。通过Prefe...
    99+
    2023-09-28
    Android
  • Android开发之AlertDialog实现弹出对话框
    本文实例为大家分享了Android开发之AlertDialog实现弹出对话框的具体代码,供大家参考,具体内容如下 基本框架 我们在xml中添加一个按钮用来唤出对话框: <xml...
    99+
    2024-04-02
  • android开发三大框架是什么
    android开发三大框架是XUtil框架、volley框架、ImageLoader框架。详细介绍:1、XUtil框架有数据库模块、表明模块、网络模块、图片缓存模块等四大模块;2、volley框架的内容有JSON,图象等的异步下载、网络恳求...
    99+
    2023-08-14
  • Android开发之Dialog怎么使用
    在Android开发中,可以使用Dialog来创建弹出式对话框。下面是使用Dialog的一般步骤:1. 创建Dialog实例:```...
    99+
    2023-08-18
    Android Dialog
  • Android开发实战闹钟项目
    本文实例为大家分享了Android实战闹钟项目的具体代码,供大家参考,具体内容如下 一、闹钟功能的介绍以及界面的展示 该闹钟是根据我们手机闹钟设计的一个简单的闹钟APP,其中包含时钟...
    99+
    2024-04-02
  • Android Retrofit框架的使用
    目录Retrofit介绍 Retrofit优点 Retrofit的使用 1.引入依赖项 2.添加网络权限3.编写Retrofit辅助类 4.定义ApiService 5.实现接口方法...
    99+
    2024-04-02
  • android前端开发的框架有哪些
    本篇内容主要讲解“android前端开发的框架有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“android前端开发的框架有哪些”吧!   1、Lungo...
    99+
    2024-04-02
  • android开发框架的应用场景有哪些
    Android开发框架可以应用于以下场景:1. 移动应用开发:Android开发框架提供了丰富的工具和库,使开发者可以轻松创建功能丰...
    99+
    2023-10-08
    android
  • Android so库开发——Android Studio调用so库(二)
    一、JNI规范so库调用         在 Android Studio生成自己的so库 中已经创建了自己的so库,这是一个JNI规范的so库,可以直接将so库放到libs中,并按照上面文章中MainActivity中的调用方法使用。 b...
    99+
    2023-09-25
    android studio android
  • Android串口开发之使用JNI实现ANDROID和串口通信
    导语:Android串口通信在物联网、智能家居等领域具有广泛的应用。本文将详细介绍如何使用JNI技术实现Android设备与串口的通信,包括串口的打开、设置参数和读写数据等过程。 目录 一...
    99+
    2023-10-20
    android java android studio 串口通信 JNI
  • Android开发组件化架构设计原理到实战
    目录为什么需要组件化组件化和模块化模块化架构组件化架构组件化带来的优势组件化需解决的问题资源冲突解决AndroidManifest独立调试单工程方案多工程方案页面跳转Arouter ...
    99+
    2024-04-02
  • 使用Android Studio开发Android APP
    写在前面 本节将介绍如何使用Android Studio开发Android APP,和前面Eclipse + ADT + SDK搭建Android开发环境一样,本节也只是介绍一些基本东西,深入的,比如快捷键,小技巧等会再另一篇文章中详细...
    99+
    2023-09-29
    android android studio ide
  • Android开发之BottomSheetDialog组件的使用
    目录Bottom SheetBottomSheetBehaviorBottomSheetDialog完整 Demo Bottom Sheet Bottom Sheet 是 Desig...
    99+
    2023-01-09
    Android BottomSheetDialog使用 Android BottomSheetDialog
  • android one框架怎么使用
    Android One 是谷歌推出的一款针对低端设备的 Android 系统框架,旨在提供更好的性能和更长的软件更新周期。要使用 A...
    99+
    2023-10-23
    android
  • Android动态界面开发框架Tangram了解
    Tangram是一个用于Android动态界面开发的框架。它提供了一套丰富的组件,开发者可以通过配置来实现动态布局和界面的渲染。Ta...
    99+
    2023-09-20
    Android
  • android混合开发框架有哪些优势
    Android混合开发框架的优势有以下几点:1. 跨平台开发:Android混合开发框架可以通过一套代码同时在Android和其他平...
    99+
    2023-10-19
    android
  • Android WebView开发之自定义WebView工具框
    附GitHub源码:WebViewExplore 先看图: 在WebView页面长按时会弹出一个复制框,但如果里面的item不是我们想要的或者想自定义,那么可以通过覆盖WebVie...
    99+
    2024-04-02
  • Android中如何使用Atlas框架
    本篇文章为大家展示了Android中如何使用Atlas框架,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  Atlas是什么  Atlas是一个Android客户端容器框架,主要提供了组件化、动态性...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作