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 MyBindmyBind= new MyBind(); @Override public void onCreate(){ //TODOAuto-generatedmethodstub super .onCreate(); System.out.println( "TestServiceoncreate()" ); } @SuppressLint ( "NewApi" ) @Override public int onStartCommand(Intentintent, int flags, int startId){ //TODOAuto-generatedmethodstub getDate( "http://www.lewei50.com/api/V1/Gateway/GetSensors/01" ); return super .onStartCommand(intent,flags,startId); } @Override public void onDestroy(){ //TODOAuto-generatedmethodstub super .onDestroy(); System.out.println( "TestServicedesory()" ); } @Override public IBinderonBind(Intentintent){ //TODOAuto-generatedmethodstub return myBind; } @Override public void unbindService(ServiceConnectionconn){ //TODOAuto-generatedmethodstub System.out.println( "TestUnbindService()" ); super .unbindService(conn); } public class MyBind extends Binder{ public void test(){ System.out.println( "test" ); } public GetDateServicegetDateService(){ return GetDateService. this ; } } public void getDate(Stringurl){ AsyncHttpClientclient= new AsyncHttpClient(); RequestParamsparams= new RequestParams(); //设置请求的参数名和参数值 params.put( "userKey" , "cc809cd707xxxxxa917xxxxxxc674d0" ); client.get(url,params, new JsonHttpResponseHandler(){ @Override public void onStart(){ //calledbeforerequestisstarted } @Override public void onSuccess( int statusCode,Header[]headers,JSONObjectresponse){ //TODOAuto-generatedmethodstub 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, Throwablearg3){ //TODOAuto-generatedmethodstub super .onFailure(arg0,headers,arg2,arg3); Toast.makeText(GetDateService. this ,arg3.toString(),Toast.LENGTH_SHORT).show(); } @Override public void onRetry(){ //TODOAuto-generatedmethodstub 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