編輯:關於Android編程
NoHttp是專門做Android網絡請求與下載的框架,NoHttp基本使用方法如下
本文demo源碼下載地址: http://xiazai.jb51.net/201609/yuanma/AndroidNoHttp(jb51.net).rar
本文的例子來自上面的demo中的OriginalActivity中。
代碼
對於新手, 看別人封裝好的代碼允許要稍微吃力一點,尤其是一個框架,所以我們先看NoHttp最原始的使用方法:
public class OriginalActivity extends BaseActivity implements View.OnClickListener {
/**
* 用來標志請求的what, 類似handler的what一樣,這裡用來區分請求
*/
private static final int NOHTTP_WHAT_TEST = 0x001;
/**
* 請求的時候等待框
*/
private WaitDialog mWaitDialog;
/**
* 請求隊列
*/
private RequestQueue requestQueue;
@Override
protected void onActivityCreate(Bundle savedInstanceState) {
setTitle(Application.getInstance().nohttpTitleList[0]);
setContentView(R.layout.activity_original);
// 按鈕點擊監聽
findView(R.id.btn_start).setOnClickListener(this);
mWaitDialog = new WaitDialog(this);
// 創建請求隊列, 默認並發3個請求, 傳入數字改變並發數量: NoHttp.newRequestQueue(1);
requestQueue = NoHttp.newRequestQueue();
}
@Override
public void onClick(View v) {
// 創建請求對象
Request<String> request = NoHttp.createStringRequest(url, RequestMethod.POST);
// 添加請求參數
request.add("userName", "yolanda");
request.add("userPass", 1);
request.add("userAge", 1.25);
// 上傳文件
request.add("userHead", new FileBinary(new File(path)));
// 添加請求頭
request.addHeader("Author", "nohttp_sample");
// 設置一個tag, 在請求完(失敗/成功)時原封不動返回; 多數情況下不需要
// request.setTag(object);
/*
* what: 當多個請求同時使用同一個OnResponseListener時用來區分請求, 類似handler的what一樣
* request: 請求對象
* onResponseListener 回調對象,接受請求結果
*/
requestQueue.add(NOHTTP_WHAT_TEST, request, onResponseListener);
}
/**
* 回調對象,接受請求結果
*/
private OnResponseListener<String> onResponseListener = new OnResponseListener<String>() {
@SuppressWarnings("unused")
@Override
public void onSucceed(int what, Response<String> response) {
if (what == NOHTTP_WHAT_TEST) {// 判斷what是否是剛才指定的請求
// 請求成功
String result = response.get();// 響應結果
// 響應頭
Headers headers = response.getHeaders();
headers.getResponseCode();// 響應碼
response.getNetworkMillis();// 請求花費的時間
}
}
@Override
public void onStart(int what) {
// 請求開始,顯示dialog
mWaitDialog.show();
}
@Override
public void onFinish(int what) {
// 請求結束,關閉dialog
mWaitDialog.dismiss();
}
@Override
public void onFailed(int what, String url, Object tag, CharSequence error, int resCode, long ms) {
// 請求失敗
...
}
};
@Override
protected void onDestroy() {
super.onDestroy();
requestQueue.cancelAll();// 退出APP時停止所有請求
requestQueue.stop();// 退出APP時停止隊列
}
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。
Android給app設置自定義鈴聲功能
因為有個需求是在自己的app中添加鈴聲並播放,而之前在網上查閱了相關的資料卻大多都是教人怎麼設置手機來電、鬧鐘等手機系統的功能,所以就以此文章作為記錄。一、本篇文章的大致
Android-手勢識別(普通手勢識別:上 下 左 右 ;自定義手勢識別:對號,錯號 等)
1.回顧上篇學習了 Android 系統服務的 10個實例 ,當然 還有更多的系統服務沒有使用;留下來的遺憾就是,昨晚沒有將demo下載地址分享出去; &nbs
Android 虛化圖片的方法
Android 虛化圖片 模糊圖片 圖片毛玻璃效果。 效果如圖: 在Android可以用RenderScript方便的實現這個方法: private void blu
Android自定義RatingBar(評分控件)
RatingBar簡單介紹RatingBar是基於SeekBar(拖動條)和ProgressBar(狀態條)的擴展,用星形來顯示等級評定,在使用默認RatingBar時,