Mr.Xu
--專注移動互聯網
BlogJava
首頁
新隨筆
聯系
聚合
管理
隨筆-1 評論-2 文章-0 trackbacks-0
[原創]java回調函數的使用筆記
在java和android開發過程中經常遇到回調函數,一直對回調函數不是很理解,今天自己寫了個例子,是為了客戶端像服務器發送請求,要知道請求是否發送成功而寫的。當你發送一個請求到服務器時,成功發送請求就調用成功的接口,發送請求就調用失敗的接口,這些都由服務器進行處理,客戶端只需知道成功與否問題。概念的東西就不多說了,直接上代碼了。
1、創建回調接口
1
package
pattern;
2
3
/** */
/**
4
*描述:回調接口
5
*
@author
xuzhiwei
6
*/
7
public
interface
ICallBack
{
8
public
void
onSuccess(String content);
9
public
void
onFailure(String errorMsg);
10
}
2、創建調用http請求的類,用于向服務器發送請求,服務器內部進行http請求處理的功能。
1
package
pattern;
2
3
import
java.io.IOException;
4
import
java.net.HttpURLConnection;
5
import
java.net.MalformedURLException;
6
import
java.net.URL;
7
import
java.util.logging.Level;
8
import
java.util.logging.Logger;
9
10
/** */
/**
11
*
12
*
@author
xuzhiwei
13
*/
14
public
abstract
class
Request
{
15
public
void
onSuccess(String resposeBody)
{}
16
public
void
onFailure(String exceptionMsg)
{}
17
18
public
Request()
{}
19
20
public
void
execute(String path)
{
21
try
{
22
URL url
=
new
URL(path);
23
HttpURLConnection conn
=
(HttpURLConnection)url.openConnection();
24
25
conn.setConnectTimeout(
3
*
1000
);
26
conn.setReadTimeout(
2000
);
//返回請求結果
27
int
responseCode
=
conn.getResponseCode();
28
onResponse(responseCode);
29
}
catch
(MalformedURLException ex)
{
30
onFailure(ex.getMessage());
31
}
catch
(IOException ex)
{
32
onFailure(ex.getMessage());
33
}
34
}
35
/**響應處理**/
36
public
void
onResponse(
int
code)
{
37
if
(code
==
200
)
{ //狀態碼:200響應請求成功!調用
onSuccess 方法
38
onSuccess(
"
發送請求成功!
"
);
39
}
else
{
40
onFailure(
"
發送請求失敗!請求代碼:
"
+
code);
41
}
42
}
43
44
}
45
3、創建請求控制類
package
pattern;
/** */
/**
*
*
@author
xuzhiwei
*/
public
class
Ranking
{
private
String path;
public
Ranking(String path)
{
this
.path
=
path;
}
public
void
list(
final
ICallBack call)
{
//創建請求實例,請求成功回調成功方法,反之調用失敗的接口
Request request
=
new
Request()
{
@Override
public
void
onSuccess(String resposeBody)
{
if
(
null
!=
call)
{
call.onSuccess(resposeBody);
}
else
{
onFailure(
"
未初始化回調函數
"
);
}
}
@Override
public
void
onFailure(String exceptionMsg)
{
if
(
null
!=
call)
{
call.onFailure(exceptionMsg);
}
}
}
;
request.execute(path);
}
}
4、創建測試類進行測試
1
package
pattern;
2
/** */
/**
3
*
4
*
@author
xuzhiwei
5
*/
6
public
class
TestCallBack
{
7
8
public
static
void
main(String[] args)
{
9
10
Ranking ranking
=
new
Ranking(
"
http://localhost/net/index.php
"
);
11
12
ranking.list(
new
ICallBack()
{
13
14
@Override
15
public
void
onSuccess(String content)
{
16
complete(content);
17
}
18
19
@Override
20
public
void
onFailure(String errorMsg)
{
21
complete(errorMsg);
22
}
23
}
);
24
}
25
26
private
static
void
complete(String msg)
27
{
28
System.out.println(
"
------請求完成---->
"
+
msg);
29
}
30
}
31
以上就是整個回調函數的處理過程了。第一次寫blog,請大家多多指教。
posted on 2012-07-27 12:43
じZhìつ偉
閱讀(1434)
評論(2)
編輯
收藏
評論:
#
re: [原創]java回調函數的使用筆記 [未登錄] 2012-07-27 16:50 |
ゞ沉默是金ゞ
Request should implement ICallBack, correct?
回復
更多評論
#
re: [原創]java回調函數的使用筆記
2012-07-27 17:10 |
じZhìつ偉
@ゞ沉默是金ゞ 也可以實現ICallBack接口。
回復
更多評論
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
<
2012年7月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
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
1
2
3
4
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
給我留言
查看公開留言
查看私人留言
隨筆檔案
2012年7月 (1)
搜索
最新評論
1.?re: [原創]java回調函數的使用筆記
@ゞ沉默是金ゞ 也可以實現ICallBack接口。
--じZhìつ偉
2.?re: [原創]java回調函數的使用筆記 [未登錄]
Request should implement ICallBack, correct?
--ゞ沉默是金ゞ
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 じZhìつ偉
主站蜘蛛池模板:
亚洲欧洲久久av
|
黄页网站在线视频免费
|
91精品国产免费久久国语蜜臀
|
亚洲精品无码你懂的
|
免费看a级黄色片
|
色婷婷亚洲一区二区三区
|
亚洲白嫩在线观看
|
成人免费a级毛片无码网站入口
|
自拍日韩亚洲一区在线
|
亚洲国产精品第一区二区
|
久久精品国产亚洲Aⅴ蜜臀色欲
|
99久久久国产精品免费蜜臀
|
亚洲欧美黑人猛交群
|
亚洲天堂一区二区三区四区
|
青青草国产免费久久久91
|
999久久久免费精品国产
|
无码精品国产一区二区三区免费
|
亚洲影视自拍揄拍愉拍
|
亚洲综合视频在线观看
|
亚洲人成网站在线播放影院在线
|
精品国产亚洲一区二区三区
|
成年男女男精品免费视频网站
|
在线看无码的免费网站
|
无码国产精品一区二区免费模式
|
中文字幕免费观看视频
|
激情内射亚洲一区二区三区爱妻
|
91天堂素人精品系列全集亚洲
|
日本一道综合久久aⅴ免费
|
中文无码成人免费视频在线观看
|
免费网站看av片
|
中文字幕视频在线免费观看
|
亚洲专区中文字幕
|
亚洲国产美女精品久久
|
亚洲色偷偷av男人的天堂
|
亚洲欧洲日产专区
|
亚洲人成在线精品
|
久久亚洲精品国产精品婷婷
|
亚洲av一综合av一区
|
国产做床爱无遮挡免费视频
|
免费国产精品视频
|
黑人大战亚洲人精品一区
|