個人技術博客

一. Volley框架

在進行和服務器交互的時候需要發送請求,發現了volley這個好用易上手的框架。volley是一個異步網絡通信框架,它的優點在于輕量級、適用于量小但傳送頻繁的請求操作

搭建請求的第一步就是新建一個請求隊列
RequestQueue queue = Volley.newRequestQueue(this)
在后續通信過程中,可以把每次的請求都加入到請求隊列中,一次發送,減少資源的浪費,通常一個活動一個請求隊列就夠了。
每發送一條http請求,就需要創建一個請求對象,volley提供了StringRequestJsonRequestImageRequest等針對不同格式請求的對象,完成請求的用法大同小異,都需要最基本的三步:
1. 創建一個RequestQueue對象
2. 創建一個request對象
3. 將request對象添加到RequestQueue隊列里去
以StringRequest為例,下面是它的基本結構
StringRequest stringRequest = new StringRequest("http://www.baidu.com", new Response.Listener<String>() { @Override public void onResponse(String response) { Log.d("TAG", response); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.e("TAG", error.getMessage(), error); } });
但是在團隊項目中我們需要傳參數即要以post方式發送,并且約定發送和接收格式都是json,在嘗試用JsonRequest 的時候我還是遇到了一些問題:
1.新建JsonRequest對象的時候 需要實例化一個JSONObject對象然后作為參數傳進去,不能單純地將那個設為null
JSONObject jsonObject=new JSONObject(map); JsonObjectRequest jsonObjectRequest=new JsonObjectRequest(Request.Method.POST,"http://www.baidu.com", jsonObject, new Response.Listener<JSONObject>()

  1. RequestQueue queue = Volley.newRequestQueue(this) 這個this指活動上下文,我在寫的時候寫成了getApplicationContext()雖然驗證無誤但是后來發現這個指整個app的上下文,如果簡單粗暴地這么寫容易在后續創建多個請求隊列時發生錯誤,于是改成了login1Activity.this 當前活動的 上下文。
  2. 加入隊列后突然發現不知道它是什么時候發送這些請求的,然后看了源碼,發現在創建請求隊列的方法里封裝了start()函數,在外面再次寫start()也可能會出現錯誤。
  3. 以json格式傳遞參數在這里顯得不是很友好,需要先將數據放入map對象,再將map對象轉為jsonObject對象(這里真是卡了好久...)
    Map<String,String> map=new HashMap<String, String>(); //以json串方式提交參數 map.put("phonenum",myName); map.put("password",myPwd); JSONObject jsonObject=new JSONObject(map);

參考來源:
http://blog.csdn.net/guolin_blog/article/details/17482095
http://blog.csdn.net/nugongahou110/article/details/46876473

二. 關于Android Studio

額嗯,使用as的時候真是出現了無數的問題,開始很多都是因為gradle文件不同步導致的,解決過程中又因為很多時候的不仔細導致在上面耗了大量時間。
導入項目卡死的話,最大的原因就是gradle文件不一致,這時最好的辦法:***
條件不允許的話,可以到這個網站http://services.gradle.org/distributions/ 去下載對應的版本,然后放到如下的目錄C:\Users\用戶名\.gradle\wrapper\dists\gradle-2.10-all\a4w5fzrkeut1ox71xslb49gst
(a4w5fzrkeut1ox71xslb49gst這個文件夾名稱因人而異)

或者是將當前版本改為自己的gradle版本號
這里有個簡單粗暴的方法就是將自己本地的一個項目里的和gradle有關的文件都替換掉要打開項目 的gradle文件 再導入項目,導入后會有提示下載一些工具只要按提示來即可
1227513-20171116215456093-713983598.png

還有一點是導入項目的時候要選擇build.gradle 打開,導入庫 的時候要選擇項目名稱打開,這一點雖然后來我在導項目的時候選擇名稱好像也沒什么問題。。。不太懂

安裝完as后我的c盤就有點緊臟,額昂這里可以配置一下android studio的緩存文件夾,這里貼個教程 http://blog.csdn.net/qiujuer/article/details/44160127

轉載于:https://www.cnblogs.com/zyccccla/p/7844179.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/251513.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/251513.shtml
英文地址,請注明出處:http://en.pswp.cn/news/251513.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

軟件構造 第一章第二節 軟件開發的質量屬性

?軟件構造 第一章第二節 軟件開發的質量屬性 1.軟件系統質量指標 External quality factors affect users 外部質量因素影響用戶 Internal quality factors affect the software itself and its developers 內部質量因素影響軟件本身和它的開發者 External quality results fr…

css --- 讓不同的瀏覽器加載不同的CSS

// 通過條件注釋讓不同的瀏覽器加載不同的CSS <!--[if !IE]><!--> 除IE外都可識別 <!--<![endif]--> <!--[if IE]><!--> 所有的IE可識別 <![endif]--> <!--[if IE 6]> 僅IE6可識別 <![endif]--> <!--[if lt IE 6]> I…

??? ?? ??.??

abcdefg a?? abca abcbca abcabcdeda Cc ?? ??? [a] [ac] [a-c] [Cc] ??? 1>* ( 0~???) 2> (1~???) 3.? () 4 {1,2} {Min,Max} [??]*{} ???.??…

css自媒體查詢

準備工作1&#xff1a;設置Meta標簽 首先我們在使用Media的時候需要先設置下面這段代碼&#xff0c;來兼容移動設備的展示效果&#xff1a; <meta name"viewport" content"widthdevice-width, initial-scale1.0, maximum-scale1.0, user-scalableno">…

css --- 清除浮動

有時我們需要用到浮動,但又不想由于浮動的某些特性影響布局,這時就需要清除浮動 清除浮動主要應用的是CSS中的clear屬性,clear屬性定義了元素的哪一側不允許出現浮動元素. 下面是兩種應用比較廣泛的清除浮動的方法: // 在需要的地方添加定義了clear:both的空標簽 <style>…

數據可視化實現技術(canvas/svg/webGL)

數據可視化的實現技術和工具比較轉載于:https://www.cnblogs.com/knuzy/p/9215632.html

Python 字符串操作(string替換、刪除、截取、復制、連接、比較、查找、包含、大小寫轉換、分割等)...

http://www.cnblogs.com/huangcong/archis.strip() .lstrip() .rstrip(,) 去空格及特殊符號復制字符串Python1 #strcpy(sStr1,sStr2)2 sStr1 strcpy3 sStr2 sStr14 sStr1 strcpy25 print sStr2連接字符串Python1 #strcat(sStr1,sStr2)2 sStr1 strcat3 sStr2 append4 sStr1…

java 將一個非空文件夾拷貝到另一個地方

沒有處理異常&#xff0c;只是簡單的拋出了。需要捕獲的需修改一下。 public class Test001 { //把一個文件夾或文件移到另一個地方去。 public static void main(String[] args) throws Exception { File filenew File("D:\\testFolder"); new Test001().copyFileTo…

Python環境 及安裝

windows 1、下載安裝包 https://www.python.org/downloads/2、安裝默認安裝路徑&#xff1a;C:\python273、配置環境變量【右鍵計算機】--》【屬性】--》【高級系統設置】--》【高級】--》【環境變量】--》【在第二個內容框中找到 變量名為Path 的一行&#xff0c;雙擊】 -->…

MUI主界面菜單同時移動主體部分不出滾動條解決

mOffcanvas(側滑導航-主界面、菜單同時移動) 生成代碼 增加列表滾動OK 增加幻燈片就掛了 百度了半天 沒發現問題 后來想起官網的一句話 除頂部導航、底部選項卡兩個控件之外&#xff0c;其它控件都建議放在.mui-content控件內&#xff0c;在Hbuilder中輸入mbody&#xff0c;可快…

范圍查詢 BETWEEN AND

查詢&#xff1a;從表t_student里 查找 id 在1~10 之間的學生信息&#xff0c;并顯示 id,name,age,email 信息 SELECT id,name,age,email FROM t_student WHERE id BETWEEN 1 AND 10轉載于:https://www.cnblogs.com/hello-dummy/p/9216720.html

css --- 應用媒介查詢制作響應式導航欄

以上導航會自動適應各個尺寸的屏幕 代碼如下: <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <meta name"apple-mobile-w…

AODV中實施watchdog

1.開啟混雜模式&#xff0c;接收鄰居轉發的所有數據包&#xff0c;不進行MAC過濾&#xff0c;全部 sendToWatchdog(const Packet *p) 2.當前節點轉發數據包后&#xff0c;緩存數據包 sendToWatchdog(const Packet *p, int mac_dst) //Start Watchdog Code voidAODV::tap(const …

Drools 7.4.1.Final參考手冊(六) 用戶手冊

用戶手冊 基礎 無狀態的知識Session Drools規則引擎擁有大量的用例和功能&#xff0c;我們要如何開始&#xff1f;你無須擔心&#xff0c;這些復雜性是分層的&#xff0c;你可以用簡單的用例來逐步入門。 無狀態Session&#xff0c;無須使用推理&#xff0c;就形成了最簡單的用…

css --- 彈性盒子

左右兩側按1:1自適應,中間固定寬度500px // CSS /* 首先定義 container &#xff0c;關注display */ /* webkit 是Chrome、Safari 的瀏覽器前綴 */ .container{margin: auto;display: -webkit-box;width: 80%&#xff1b;height: 200px; } /* 開始定義左、中、右 */ .left { …

更精煉更專注的RTMPClient客戶端EasyRTMPClient,滿足直播、轉發、分析等各種需求...

現狀 EasyRTMPClient&#xff0c;熟悉的朋友就會聯想到EasyRTSPClient項目&#xff08;https://github.com/EasyDSS/EasyRTSPClient&#xff09;&#xff0c;EasyRTSPClient從14年中期開始發展&#xff0c;已經迭代發展歷時3年多時間&#xff0c;可以說在RTSPClient領域是非常成…

數據操縱語言 ,DML, 增刪改

DML(data manipulation language)&#xff1b;數據操縱語言 插入數據&#xff1a;插入數據&#xff1a; 每次只能插入一行數據 INSERT INTO 表名(列名1, 列名2, 列名3....) VALUES (value1, value2, value3....); value與列數一一對應。 #插入一行: INSERT INTO t_student(id,…

bootstrap --- 表格

幾個可選類: .table-bordered: 為表格加上邊框 .table-striped: 為表格加上斑馬效果 .table-hover: 鼠標懸停在表格行上時展現不同得顏色 .table-condensed: 更為緊湊的表格樣式 // 導入樣式,從bootstrap官網導入CDN // HEAD <link rel"stylesheet" href"…

發現一個小坑的地方,unity的協程,想要停止,必須以字符串啟動

今天想要停止一個協成&#xff0c;發現調用 StopCoroutine(ShowDebug()); 竟然不管用&#xff0c;后來看了文檔才知道&#xff0c;原來想要停止協成&#xff0c;必須用字符啟動協程 StartCoroutine("ShowDebug"); 然后再調用 StopCoroutine("ShowDebug…

mongodb數據庫中插入數據

mongodb數據庫中插入數據 一&#xff1a;connection 訪問集合&#xff1b; 在mongodb數據庫中&#xff0c;數據是存儲在許多數據集合中&#xff0c;可以使用數據庫對象的collection方法訪問一個集合。該方法使用如下&#xff1a; db.collection(collectionName, [options], [ca…