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ìつ偉
主站蜘蛛池模板:
一级毛片免费一级直接观看
|
亚洲午夜久久久久久久久电影网
|
91亚洲国产成人精品下载
|
中文无码成人免费视频在线观看
|
久久综合亚洲色HEZYO国产
|
一级片在线免费看
|
中文字幕久久亚洲一区
|
中文字幕久无码免费久久
|
亚洲桃色AV无码
|
免费国产成人α片
|
亚洲欧洲日韩综合
|
无码视频免费一区二三区
|
亚洲AV色无码乱码在线观看
|
国产无遮挡色视频免费视频
|
特a级免费高清黄色片
|
亚洲日韩精品无码专区网站
|
久久免费香蕉视频
|
亚洲一区免费观看
|
性短视频在线观看免费不卡流畅
|
亚洲AV综合色区无码二区偷拍
|
影音先锋在线免费观看
|
麻豆91免费视频
|
亚洲成a人片在线观看无码
|
999任你躁在线精品免费不卡
|
亚洲H在线播放在线观看H
|
国产免费观看网站
|
三级黄色免费观看
|
亚洲最大的视频网站
|
在线免费观看韩国a视频
|
国产裸体美女永久免费无遮挡
|
亚洲欧洲第一a在线观看
|
国内免费高清在线观看
|
一个人看www免费高清字幕
|
久久久久亚洲AV无码网站
|
好爽…又高潮了免费毛片
|
久草免费福利在线
|
亚洲色成人网一二三区
|
国产99视频免费精品是看6
|
国产精品免费AV片在线观看
|
亚洲五月综合缴情婷婷
|
www国产亚洲精品久久久日本
|