大道之行,天下为公。这篇文章主要讲述android在service中使用AsyncHttpClient加载网络资源相关的知识,希望能为你提供帮助。
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格式
【android在service中使用AsyncHttpClient加载网络资源】本文出自 “matengbing” 博客,请务必保留此出处http://matengbing.blog.51cto.com/11395502/1909711
推荐阅读
- Android 5.0及以上版本使用webview不能使用Cookies解决方案
- 安卓开源项目周报0322
- 生活娱乐 如何在安卓智能电视上安装自定义软件
- android 再按一次退出(笔记)
- eclipse安装Android模拟器
- Android程序出错报告---ACRA的用法
- Android 通用流行框架大全
- 在高通平台Android环境下编译内核模块
- Android Things 专题6 完整的栗子(运用TensorFlow解析图像)