android在service中使用AsyncHttpClient加载网络资源

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package  com.example.service;
import  org.apache.http.Header;
import  org.json.JSONObject;
 
 
 
 
 
 
import  com.loopj.android.http.AsyncHttpClient;
 
import  com.loopj.android.http.JsonHttpResponseHandler;
import  com.loopj.android.http.RequestParams;
 
import  android.annotation.SuppressLint;
import  android.app.Service;
import  android.content.Intent;
import  android.content.ServiceConnection;
import  android.os.Binder;
import  android.os.IBinder;
 
import  android.widget.Toast;
 
 
public  class  GetDateService  extends  Service{
     /*
      * 请求队列*/
 
     private  MyBind myBind= new  MyBind();
     
     @Override
     public  void  onCreate() {
         // TODO Auto-generated method stub
         super .onCreate();
         
         
         System.out.println( "TestService oncreate()" );
     }
     @SuppressLint ( "NewApi" )
     @Override
     public  int  onStartCommand(Intent intent,  int  flags,  int  startId) {
         // TODO Auto-generated method stub
         getDate( "http://www.lewei50.com/api/V1/Gateway/GetSensors/01" );
         return  super .onStartCommand(intent, flags, startId);
     }
     @Override
     public  void  onDestroy() {
         // TODO Auto-generated method stub
         super .onDestroy();
         
         System.out.println( "TestService desory()" );
     }
     @Override
     public  IBinder onBind(Intent intent) {
         // TODO Auto-generated method stub
         return  myBind;
     }
     @Override
     public  void  unbindService(ServiceConnection conn) {
         // TODO Auto-generated method stub
         System.out.println( "Test UnbindService()" );
         super .unbindService(conn);
     }
     
     public  class  MyBind  extends  Binder{
         public  void  test(){
             System.out.println( "test" );
         }
         public  GetDateService getDateService(){
             return  GetDateService. this ;
         }
     }
     public  void  getDate(String url){
         AsyncHttpClient client =  new  AsyncHttpClient();
          RequestParams params =  new  RequestParams();
             // 设置请求的参数名和参数值
          params.put( "userKey" "cc809cd707xxxxxa917xxxxxxc674d0" );
         client.get(url,params,  new  JsonHttpResponseHandler() {
             @Override
             public  void  onStart() {
                 // called before request is started
                 
             }
 
             @Override
             public  void  onSuccess( int  statusCode, Header[] headers,JSONObject response) {
                 // TODO Auto-generated method stub
                 super .onSuccess(statusCode, headers, response);
                 Toast.makeText(GetDateService. this , response.toString(), Toast.LENGTH_SHORT).show();
             }
             @Override
             public  void  onFailure( int  arg0, Header[] headers,  byte [] arg2,
                     Throwable arg3) {
                 // TODO Auto-generated method stub
                 super .onFailure(arg0, headers, arg2, arg3);
                 Toast.makeText(GetDateService. this , arg3.toString(), Toast.LENGTH_SHORT).show();
                 
             }
             @Override
             public  void  onRetry() {
                 // TODO Auto-generated method stub
                 super .onRetry();
             }
         });
         
         System.out.println(url);
     
     
         
     }
     
     
     
}

public void getDate(String url){
        AsyncHttpClient client = new AsyncHttpClient();
         RequestParams params = new RequestParams();
            // 设置请求的参数名和参数值
         params.put("userKey", "cc809cd707cexxxxx9176xxxxxc674d0");
        client.get(url,params, new JsonHttpResponseHandler() {
            @Override
            public void onStart() {
                // called before request is started
                
            }

            @Override
            public void onSuccess(int statusCode, Header[] headers,JSONObject response) {
                // TODO Auto-generated method stub
                super.onSuccess(statusCode, headers, response);
                Toast.makeText(GetDateService.this, response.toString(), Toast.LENGTH_SHORT).show();
            }
            @Override
            public void onFailure(int arg0, Header[] headers, byte[] arg2,
                    Throwable arg3) {
                // TODO Auto-generated method stub
                super.onFailure(arg0, headers, arg2, arg3);
                Toast.makeText(GetDateService.this, arg3.toString(), Toast.LENGTH_SHORT).show();
                
            }
            @Override
            public void onRetry() {
                // TODO Auto-generated method stub
                super.onRetry();
            }
        });
       
    }

参数格式是String类型,得到的数据格式是json格式



 本文转自 matengbing 51CTO博客,原文链接:http://blog.51cto.com/matengbing/1909711


相关文章
|
机器学习/深度学习 PyTorch 算法框架/工具
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
这篇文章介绍了如何使用PyTorch框架,结合CIFAR-10数据集,通过定义神经网络、损失函数和优化器,进行模型的训练和测试。
787 2
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
|
7月前
|
存储 消息中间件 人工智能
【03】AI辅助编程完整的安卓二次商业实战-本地构建运行并且调试-二次开发改注册登陆按钮颜色以及整体资源结构熟悉-优雅草伊凡
【03】AI辅助编程完整的安卓二次商业实战-本地构建运行并且调试-二次开发改注册登陆按钮颜色以及整体资源结构熟悉-优雅草伊凡
259 3
|
API 数据处理 Android开发
Android网络请求演变:从Retrofit到Flow的转变过程。
通过这个比喻,我们解释了 Android 网络请求从 Retrofit 到 Flow 的转变过程。这不仅是技术升级的体现,更是反映出开发者在面对并发编程问题时,持续探索和迭求更好地解决方案的精神。未来,还会有更多新的技术和工具出现,我们期待一同 witness 这一切的发展。
472 36
|
11月前
|
Web App开发 缓存 JavaScript
Android网络小说阅读器的实现
小说阅读Demo,。此Demo使用Jsoup解析HTML,实现小说数据抓取(数据源自网络),并包含自定义View、六章小说缓存等功能,但未实现下载。项目还包括屏幕适配、字体设置等,借助第三方框架完成优化。以下是主页、详情页、阅读页等界面展示。
344 0
|
XML JavaScript Android开发
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
509 15
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
791 15
|
网络协议 Shell 网络安全
解决两个 Android 模拟器之间无法网络通信的问题
让同一个 PC 上运行的两个 Android 模拟器之间能相互通信,出(qiong)差(ren)的智慧。
403 3
|
缓存 JavaScript
Vue加载网络组件(远程组件)
【10月更文挑战第23天】在 Vue 中实现加载网络组件(远程组件)可以通过多种方式来完成。
|
Android开发 UED
Android 中加载 Gif 动画
【10月更文挑战第20天】加载 Gif 动画是 Android 开发中的一项重要技能。通过使用第三方库或自定义实现,可以方便地在应用中展示生动的 Gif 动画。在实际应用中,需要根据具体情况进行合理选择和优化,以确保用户体验和性能的平衡。可以通过不断的实践和探索,进一步掌握在 Android 中加载 Gif 动画的技巧和方法,为开发高质量的 Android 应用提供支持。
|
安全 网络安全 Android开发
探索安卓开发之旅:从新手到专家网络安全与信息安全:防范网络威胁,保护数据安全
【8月更文挑战第29天】在这篇技术性文章中,我们将踏上一段激动人心的旅程,探索安卓开发的世界。无论你是刚开始接触编程的新手,还是希望提升技能的资深开发者,这篇文章都将为你提供宝贵的知识和指导。我们将从基础概念入手,逐步深入到安卓开发的高级主题,包括UI设计、数据存储、网络通信等方面。通过阅读本文,你将获得一个全面的安卓开发知识体系,并学会如何将这些知识应用到实际项目中。让我们一起开启这段探索之旅吧!

热门文章

最新文章