天天看點

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

<code>package</code> <code>com.example.service;</code>

<code>import</code> <code>org.apache.http.Header;</code>

<code>import</code> <code>org.json.JSONObject;</code>

<code>import</code> <code>com.loopj.android.http.AsyncHttpClient;</code>

<code>import</code> <code>com.loopj.android.http.JsonHttpResponseHandler;</code>

<code>import</code> <code>com.loopj.android.http.RequestParams;</code>

<code>import</code> <code>android.annotation.SuppressLint;</code>

<code>import</code> <code>android.app.Service;</code>

<code>import</code> <code>android.content.Intent;</code>

<code>import</code> <code>android.content.ServiceConnection;</code>

<code>import</code> <code>android.os.Binder;</code>

<code>import</code> <code>android.os.IBinder;</code>

<code>import</code> <code>android.widget.Toast;</code>

<code>public</code> <code>class</code> <code>GetDateService </code><code>extends</code> <code>Service{</code>

<code>    </code><code>/*</code>

<code>     </code><code>* 請求隊列*/</code>

<code>    </code><code>private</code> <code>MyBind myBind=</code><code>new</code> <code>MyBind();</code>

<code>    </code> 

<code>    </code><code>@Override</code>

<code>    </code><code>public</code> <code>void</code> <code>onCreate() {</code>

<code>        </code><code>// TODO Auto-generated method stub</code>

<code>        </code><code>super</code><code>.onCreate();</code>

<code>        </code> 

<code>        </code><code>System.out.println(</code><code>"TestService oncreate()"</code><code>);</code>

<code>    </code><code>}</code>

<code>    </code><code>@SuppressLint</code><code>(</code><code>"NewApi"</code><code>)</code>

<code>    </code><code>public</code> <code>int</code> <code>onStartCommand(Intent intent, </code><code>int</code> <code>flags, </code><code>int</code> <code>startId) {</code>

<code>        </code><code>getDate(</code><code>"http://www.lewei50.com/api/V1/Gateway/GetSensors/01"</code><code>);</code>

<code>        </code><code>return</code> <code>super</code><code>.onStartCommand(intent, flags, startId);</code>

<code>    </code><code>public</code> <code>void</code> <code>onDestroy() {</code>

<code>        </code><code>super</code><code>.onDestroy();</code>

<code>        </code><code>System.out.println(</code><code>"TestService desory()"</code><code>);</code>

<code>    </code><code>public</code> <code>IBinder onBind(Intent intent) {</code>

<code>        </code><code>return</code> <code>myBind;</code>

<code>    </code><code>public</code> <code>void</code> <code>unbindService(ServiceConnection conn) {</code>

<code>        </code><code>System.out.println(</code><code>"Test UnbindService()"</code><code>);</code>

<code>        </code><code>super</code><code>.unbindService(conn);</code>

<code>    </code><code>public</code> <code>class</code> <code>MyBind </code><code>extends</code> <code>Binder{</code>

<code>        </code><code>public</code> <code>void</code> <code>test(){</code>

<code>            </code><code>System.out.println(</code><code>"test"</code><code>);</code>

<code>        </code><code>}</code>

<code>        </code><code>public</code> <code>GetDateService getDateService(){</code>

<code>            </code><code>return</code> <code>GetDateService.</code><code>this</code><code>;</code>

<code>    </code><code>public</code> <code>void</code> <code>getDate(String url){</code>

<code>        </code><code>AsyncHttpClient client = </code><code>new</code> <code>AsyncHttpClient();</code>

<code>         </code><code>RequestParams params = </code><code>new</code> <code>RequestParams();</code>

<code>            </code><code>// 設定請求的參數名和參數值</code>

<code>         </code><code>params.put(</code><code>"userKey"</code><code>, </code><code>"cc809cd707xxxxxa917xxxxxxc674d0"</code><code>);</code>

<code>        </code><code>client.get(url,params, </code><code>new</code> <code>JsonHttpResponseHandler() {</code>

<code>            </code><code>@Override</code>

<code>            </code><code>public</code> <code>void</code> <code>onStart() {</code>

<code>                </code><code>// called before request is started</code>

<code>                </code> 

<code>            </code><code>}</code>

<code>            </code><code>public</code> <code>void</code> <code>onSuccess(</code><code>int</code> <code>statusCode, Header[] headers,JSONObject response) {</code>

<code>                </code><code>// TODO Auto-generated method stub</code>

<code>                </code><code>super</code><code>.onSuccess(statusCode, headers, response);</code>

<code>                </code><code>Toast.makeText(GetDateService.</code><code>this</code><code>, response.toString(), Toast.LENGTH_SHORT).show();</code>

<code>            </code><code>public</code> <code>void</code> <code>onFailure(</code><code>int</code> <code>arg0, Header[] headers, </code><code>byte</code><code>[] arg2,</code>

<code>                    </code><code>Throwable arg3) {</code>

<code>                </code><code>super</code><code>.onFailure(arg0, headers, arg2, arg3);</code>

<code>                </code><code>Toast.makeText(GetDateService.</code><code>this</code><code>, arg3.toString(), Toast.LENGTH_SHORT).show();</code>

<code>            </code><code>public</code> <code>void</code> <code>onRetry() {</code>

<code>                </code><code>super</code><code>.onRetry();</code>

<code>        </code><code>});</code>

<code>        </code><code>System.out.println(url);</code>

<code>}</code>

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

            }

            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();

            public void onFailure(int arg0, Header[] headers, byte[] arg2,

                    Throwable arg3) {

                super.onFailure(arg0, headers, arg2, arg3);

                Toast.makeText(GetDateService.this, arg3.toString(), Toast.LENGTH_SHORT).show();

            public void onRetry() {

                super.onRetry();

        });

    }

參數格式是String類型,得到的資料格式是json格式

 本文轉自 matengbing 51CTO部落格,原文連結:http://blog.51cto.com/matengbing/1909711

繼續閱讀