Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞

Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞?

1 锛?AsyncTask瀹炵幇鐨勫師鐞?鍜岄€傜敤鐨勪紭缂虹偣

AsyncTask,鏄痑ndroid鎻愪緵鐨勮交閲忕骇鐨勫紓姝ョ被,鍙互鐩存帴缁ф壙AsyncTask,鍦ㄧ被涓疄鐜板紓姝ユ搷浣?骞?/strong>鎻愪緵鎺ュ彛鍙嶉褰撳墠寮傛鎵ц鐨勭▼搴?/strong>(鍙互閫氳繃鎺ュ彛瀹炵幇UI杩涘害鏇存柊),鏈€鍚庡弽棣堟墽琛岀殑缁撴灉缁橴I涓荤嚎绋?

浣跨敤鐨勪紭鐐?

l聽 绠€鍗?蹇嵎

l聽 杩囩▼鍙帶

聽聽聽聽聽聽聽

浣跨敤鐨勭己鐐?/strong>:

l聽 鍦ㄤ娇鐢ㄥ涓紓姝ユ搷浣滃拰骞堕渶瑕佽繘琛孶i鍙樻洿鏃?灏卞彉寰楀鏉傝捣鏉?

2 锛塇andler寮傛瀹炵幇鐨勫師鐞嗗拰閫傜敤鐨勪紭缂虹偣

鍦℉andler 寮傛瀹炵幇鏃?娑夊強鍒?Handler, Looper, Message,Thread鍥涗釜瀵硅薄锛屽疄鐜板紓姝ョ殑娴佺▼鏄富绾跨▼鍚姩Thread锛堝瓙绾跨▼锛壝爐hread(瀛愮嚎绋?杩愯骞剁敓鎴怣essage-脿Looper鑾峰彇Message骞朵紶閫掔粰Handler脿Handler閫愪釜鑾峰彇Looper涓殑Message锛屽苟杩涜UI鍙樻洿銆?/p>

浣跨敤鐨勪紭鐐癸細

l聽 缁撴瀯娓呮櫚锛屽姛鑳藉畾涔夋槑纭?/p>

l聽 瀵逛簬澶氫釜鍚庡彴浠诲姟鏃讹紝绠€鍗曪紝娓呮櫚

聽 聽

浣跨敤鐨勭己鐐癸細

l聽 鍦ㄥ崟涓悗鍙板紓姝ュ鐞嗘椂锛屾樉寰椾唬鐮佽繃澶氾紝缁撴瀯杩囦簬澶嶆潅锛堢浉瀵规€э級

AsyncTask浠嬬粛
Android鐨凙syncTask姣擧andler鏇磋交閲忕骇涓€浜涳紝閫傜敤浜庣畝鍗曠殑寮傛澶勭悊銆?/div>
棣栧厛鏄庣‘Android涔嬫墍浠ユ湁Handler鍜孉syncTask锛岄兘鏄负浜嗕笉闃诲涓荤嚎绋嬶紙UI绾跨▼锛夛紝涓擴I鐨勬洿鏂板彧鑳藉湪涓荤嚎绋嬩腑瀹屾垚锛屽洜姝ゅ紓姝ュ鐞嗘槸涓嶅彲閬垮厤鐨勩€?/div>
聽Android涓轰簡闄嶄綆杩欎釜寮€鍙戦毦搴︼紝鎻愪緵浜咥syncTask銆侫syncTask灏辨槸涓€涓皝瑁呰繃鐨勫悗鍙颁换鍔$被锛岄【鍚嶆€濅箟灏辨槸寮傛浠诲姟銆?/div>

AsyncTask鐩存帴缁ф壙浜嶰bject绫伙紝浣嶇疆涓篴ndroid.os.AsyncTask銆傝浣跨敤AsyncTask宸ヤ綔鎴戜滑瑕佹彁渚涗笁涓硾鍨嬪弬鏁帮紝骞堕噸杞藉嚑涓柟娉?鑷冲皯閲嶈浇涓€涓?銆?/p>

AsyncTask瀹氫箟浜嗕笁绉嶆硾鍨嬬被鍨?Params锛孭rogress鍜孯esult銆?/p>

  • Params 鍚姩浠诲姟鎵ц鐨勮緭鍏ュ弬鏁帮紝姣斿HTTP璇锋眰鐨刄RL銆?/li>
  • Progress 鍚庡彴浠诲姟鎵ц鐨勭櫨鍒嗘瘮銆?/li>
  • Result 鍚庡彴鎵ц浠诲姟鏈€缁堣繑鍥炵殑缁撴灉锛屾瘮濡係tring銆?/li>

浣跨敤杩嘇syncTask 鐨勫悓瀛﹂兘鐭ラ亾涓€涓紓姝ュ姞杞芥暟鎹渶灏戣閲嶅啓浠ヤ笅杩欎袱涓柟娉曪細

  • doInBackground(Params鈥? 鍚庡彴鎵ц锛屾瘮杈冭€楁椂鐨勬搷浣滈兘鍙互鏀惧湪杩欓噷銆傛敞鎰忚繖閲屼笉鑳界洿鎺ユ搷浣淯I銆傛鏂规硶鍦ㄥ悗鍙扮嚎绋嬫墽琛岋紝瀹屾垚浠诲姟鐨勪富瑕佸伐浣滐紝閫氬父闇€瑕佽緝闀跨殑鏃堕棿銆傚湪鎵ц杩囩▼涓彲浠ヨ皟鐢╬ublicProgress(Progress鈥?鏉ユ洿鏂颁换鍔$殑杩涘害銆?/li>
  • onPostExecute(Result)聽 鐩稿綋浜嶩andler 澶勭悊UI鐨勬柟寮忥紝鍦ㄨ繖閲岄潰鍙互浣跨敤鍦╠oInBackground 寰楀埌鐨勭粨鏋滃鐞嗘搷浣淯I銆?姝ゆ柟娉曞湪涓荤嚎绋嬫墽琛岋紝浠诲姟鎵ц鐨勭粨鏋滀綔涓烘鏂规硶鐨勫弬鏁拌繑鍥?/li>

鏈夊繀瑕佺殑璇濅綘杩樺緱閲嶅啓浠ヤ笅杩欎笁涓柟娉曪紝浣嗕笉鏄繀椤荤殑锛?/p>

  • onProgressUpdate(Progress鈥?聽聽 鍙互浣跨敤杩涘害鏉″鍔犵敤鎴蜂綋楠屽害銆?姝ゆ柟娉曞湪涓荤嚎绋嬫墽琛岋紝鐢ㄤ簬鏄剧ず浠诲姟鎵ц鐨勮繘搴︺€?/li>
  • onPreExecute()聽聽聽聽聽聽聽 杩欓噷鏄渶缁堢敤鎴疯皟鐢‥xcute鏃剁殑鎺ュ彛锛屽綋浠诲姟鎵ц涔嬪墠寮€濮嬭皟鐢ㄦ鏂规硶锛屽彲浠ュ湪杩欓噷鏄剧ず杩涘害瀵硅瘽妗嗐€?/li>
  • onCancelled()聽聽聽聽聽聽聽聽聽聽聽聽 鐢ㄦ埛璋冪敤鍙栨秷鏃讹紝瑕佸仛鐨勬搷浣?/li>

浣跨敤AsyncTask绫伙紝浠ヤ笅鏄嚑鏉″繀椤婚伒瀹堢殑鍑嗗垯锛?/p>

  • Task鐨勫疄渚嬪繀椤诲湪UI thread涓垱寤猴紱
  • execute鏂规硶蹇呴』鍦║I thread涓皟鐢紱
  • 涓嶈鎵嬪姩鐨勮皟鐢╫nPreExecute(), onPostExecute(Result)锛宒oInBackground(Params...), onProgressUpdate(Progress...)杩欏嚑涓柟娉曪紱
  • 璇ask鍙兘琚墽琛屼竴娆★紝鍚﹀垯澶氭璋冪敤鏃跺皢浼氬嚭鐜板紓甯革紱

涓€涓秴绠€鍗曠殑鐞嗚В AsyncTask 鐨勪緥瀛愶細

1 锛?AsyncTask瀹炵幇鐨勫師鐞?鍜岄€傜敤鐨勪紭缂虹偣

AsyncTask,鏄痑ndroid鎻愪緵鐨勮交閲忕骇鐨勫紓姝ョ被,鍙互鐩存帴缁ф壙AsyncTask,鍦ㄧ被涓疄鐜板紓姝ユ搷浣?骞?/strong>鎻愪緵鎺ュ彛鍙嶉褰撳墠寮傛鎵ц鐨勭▼搴?/strong>(鍙互閫氳繃鎺ュ彛瀹炵幇UI杩涘害鏇存柊),鏈€鍚庡弽棣堟墽琛岀殑缁撴灉缁橴I涓荤嚎绋?

浣跨敤鐨勪紭鐐?

l聽 绠€鍗?蹇嵎

l聽 杩囩▼鍙帶

聽聽聽聽聽聽聽

浣跨敤鐨勭己鐐?/strong>:

l聽 鍦ㄤ娇鐢ㄥ涓紓姝ユ搷浣滃拰骞堕渶瑕佽繘琛孶i鍙樻洿鏃?灏卞彉寰楀鏉傝捣鏉?

2 锛塇andler寮傛瀹炵幇鐨勫師鐞嗗拰閫傜敤鐨勪紭缂虹偣

鍦℉andler 寮傛瀹炵幇鏃?娑夊強鍒?Handler, Looper, Message,Thread鍥涗釜瀵硅薄锛屽疄鐜板紓姝ョ殑娴佺▼鏄富绾跨▼鍚姩Thread锛堝瓙绾跨▼锛壝爐hread(瀛愮嚎绋?杩愯骞剁敓鎴怣essage-脿Looper鑾峰彇Message骞朵紶閫掔粰Handler脿Handler閫愪釜鑾峰彇Looper涓殑Message锛屽苟杩涜UI鍙樻洿銆?/p>

浣跨敤鐨勪紭鐐癸細

l聽 缁撴瀯娓呮櫚锛屽姛鑳藉畾涔夋槑纭?/p>

l聽 瀵逛簬澶氫釜鍚庡彴浠诲姟鏃讹紝绠€鍗曪紝娓呮櫚

聽 聽

浣跨敤鐨勭己鐐癸細

l聽 鍦ㄥ崟涓悗鍙板紓姝ュ鐞嗘椂锛屾樉寰椾唬鐮佽繃澶氾紝缁撴瀯杩囦簬澶嶆潅锛堢浉瀵规€э級

AsyncTask浠嬬粛
Android鐨凙syncTask姣擧andler鏇磋交閲忕骇涓€浜涳紝閫傜敤浜庣畝鍗曠殑寮傛澶勭悊銆?/div>
棣栧厛鏄庣‘Android涔嬫墍浠ユ湁Handler鍜孉syncTask锛岄兘鏄负浜嗕笉闃诲涓荤嚎绋嬶紙UI绾跨▼锛夛紝涓擴I鐨勬洿鏂板彧鑳藉湪涓荤嚎绋嬩腑瀹屾垚锛屽洜姝ゅ紓姝ュ鐞嗘槸涓嶅彲閬垮厤鐨勩€?/div>

Android涓轰簡闄嶄綆杩欎釜寮€鍙戦毦搴︼紝鎻愪緵浜咥syncTask銆侫syncTask灏辨槸涓€涓皝瑁呰繃鐨勫悗鍙颁换鍔$被锛岄【鍚嶆€濅箟灏辨槸寮傛浠诲姟銆?/p>

AsyncTask鐩存帴缁ф壙浜嶰bject绫伙紝浣嶇疆涓篴ndroid.os.AsyncTask銆傝浣跨敤AsyncTask宸ヤ綔鎴戜滑瑕佹彁渚涗笁涓硾鍨嬪弬鏁帮紝骞堕噸杞藉嚑涓柟娉?鑷冲皯閲嶈浇涓€涓?銆?/p>

AsyncTask瀹氫箟浜嗕笁绉嶆硾鍨嬬被鍨?Params锛孭rogress鍜孯esult銆?/p>

  • Params 鍚姩浠诲姟鎵ц鐨勮緭鍏ュ弬鏁帮紝姣斿HTTP璇锋眰鐨刄RL銆?/li>
  • Progress 鍚庡彴浠诲姟鎵ц鐨勭櫨鍒嗘瘮銆?/li>
  • Result 鍚庡彴鎵ц浠诲姟鏈€缁堣繑鍥炵殑缁撴灉锛屾瘮濡係tring銆?/li>

浣跨敤杩嘇syncTask 鐨勫悓瀛﹂兘鐭ラ亾涓€涓紓姝ュ姞杞芥暟鎹渶灏戣閲嶅啓浠ヤ笅杩欎袱涓柟娉曪細

  • doInBackground(Params鈥? 鍚庡彴鎵ц锛屾瘮杈冭€楁椂鐨勬搷浣滈兘鍙互鏀惧湪杩欓噷銆傛敞鎰忚繖閲屼笉鑳界洿鎺ユ搷浣淯I銆傛鏂规硶鍦ㄥ悗鍙扮嚎绋嬫墽琛岋紝瀹屾垚浠诲姟鐨勪富瑕佸伐浣滐紝閫氬父闇€瑕佽緝闀跨殑鏃堕棿銆傚湪鎵ц杩囩▼涓彲浠ヨ皟鐢╬ublicProgress(Progress鈥?鏉ユ洿鏂颁换鍔$殑杩涘害銆?/li>
  • onPostExecute(Result)聽 鐩稿綋浜嶩andler 澶勭悊UI鐨勬柟寮忥紝鍦ㄨ繖閲岄潰鍙互浣跨敤鍦╠oInBackground 寰楀埌鐨勭粨鏋滃鐞嗘搷浣淯I銆?姝ゆ柟娉曞湪涓荤嚎绋嬫墽琛岋紝浠诲姟鎵ц鐨勭粨鏋滀綔涓烘鏂规硶鐨勫弬鏁拌繑鍥?/li>

鏈夊繀瑕佺殑璇濅綘杩樺緱閲嶅啓浠ヤ笅杩欎笁涓柟娉曪紝浣嗕笉鏄繀椤荤殑锛?/p>

  • onProgressUpdate(Progress鈥?聽聽 鍙互浣跨敤杩涘害鏉″鍔犵敤鎴蜂綋楠屽害銆?姝ゆ柟娉曞湪涓荤嚎绋嬫墽琛岋紝鐢ㄤ簬鏄剧ず浠诲姟鎵ц鐨勮繘搴︺€?/li>
  • onPreExecute()聽聽聽聽聽聽聽 杩欓噷鏄渶缁堢敤鎴疯皟鐢‥xcute鏃剁殑鎺ュ彛锛屽綋浠诲姟鎵ц涔嬪墠寮€濮嬭皟鐢ㄦ鏂规硶锛屽彲浠ュ湪杩欓噷鏄剧ず杩涘害瀵硅瘽妗嗐€?/li>
  • onCancelled()聽聽聽聽聽聽聽聽聽聽聽聽 鐢ㄦ埛璋冪敤鍙栨秷鏃讹紝瑕佸仛鐨勬搷浣?/li>

浣跨敤AsyncTask绫伙紝浠ヤ笅鏄嚑鏉″繀椤婚伒瀹堢殑鍑嗗垯锛?/p>

  • Task鐨勫疄渚嬪繀椤诲湪UI thread涓垱寤猴紱
  • execute鏂规硶蹇呴』鍦║I thread涓皟鐢紱
  • 涓嶈鎵嬪姩鐨勮皟鐢╫nPreExecute(), onPostExecute(Result)锛宒oInBackground(Params...), onProgressUpdate(Progress...)杩欏嚑涓柟娉曪紱
  • 璇ask鍙兘琚墽琛屼竴娆★紝鍚﹀垯澶氭璋冪敤鏃跺皢浼氬嚭鐜板紓甯革紱

涓€涓秴绠€鍗曠殑鐞嗚В AsyncTask 鐨勪緥瀛愶細

import android.os.AsyncTask;聽聽聽聽
import android.widget.ProgressBar;聽聽聽聽
import android.widget.TextView;聽聽聽聽
聽聽聽聽
/**聽聽聽
聽* 鐢熸垚璇ョ被鐨勫璞★紝骞惰皟鐢╡xecute鏂规硶涔嬪悗聽聽聽
聽* 棣栧厛鎵ц鐨勬槸onProExecute鏂规硶聽聽聽
聽* 鍏舵鎵цdoInBackgroup鏂规硶聽聽聽
聽*聽聽聽
聽*/聽聽聽聽
public class ProgressBarAsyncTask extends AsyncTask<Integer, Integer, String> {聽聽聽聽
聽聽聽聽
聽聽聽 private TextView textView;聽聽聽聽
聽聽聽 private ProgressBar progressBar;聽聽聽聽
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽
聽聽聽 public ProgressBarAsyncTask(TextView textView, ProgressBar progressBar) {聽聽聽聽
聽聽聽聽聽聽聽 super();聽聽聽聽
聽聽聽聽聽聽聽 this.textView = textView;聽聽聽聽
聽聽聽聽聽聽聽 this.progressBar = progressBar;聽聽聽聽
聽聽聽 }聽聽聽聽
聽聽聽聽
聽聽聽聽
聽聽聽 /**聽聽聽
聽聽聽聽 * 杩欓噷鐨処nteger鍙傛暟瀵瑰簲AsyncTask涓殑绗竴涓弬鏁奥犅犅犅?
聽聽聽聽 * 杩欓噷鐨凷tring杩斿洖鍊煎搴擜syncTask鐨勭涓変釜鍙傛暟聽聽聽
聽聽聽聽 * 璇ユ柟娉曞苟涓嶈繍琛屽湪UI绾跨▼褰撲腑锛屼富瑕佺敤浜庡紓姝ユ搷浣滐紝鎵€鏈夊湪璇ユ柟娉曚腑涓嶈兘瀵筓I褰撲腑鐨勭┖闂磋繘琛岃缃拰淇敼聽聽聽
聽聽聽聽 * 浣嗘槸鍙互璋冪敤publishProgress鏂规硶瑙﹀彂onProgressUpdate瀵筓I杩涜鎿嶄綔聽聽聽
聽聽聽聽 */聽聽聽聽
聽聽聽 @Override聽聽聽聽
聽聽聽 protected String doInBackground(Integer... params) {聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽 int i = 0;聽聽聽聽
聽聽聽聽聽聽聽 for (i = 10; i <= 100; i+=10) {聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽 //聽Thread.sleep(1000);

聽聽聽聽聽聽聽聽聽聽聽 publishProgress(i);聽聽聽聽
聽聽聽聽聽聽聽 }聽聽聽聽
聽聽聽聽聽聽聽 return i + params[0].intValue() + "";聽聽聽聽
聽聽聽 }聽聽聽聽聽
聽聽聽聽聽
聽聽聽 /**聽聽聽
聽聽聽聽 * 杩欓噷鐨凷tring鍙傛暟瀵瑰簲AsyncTask涓殑绗笁涓弬鏁帮紙涔熷氨鏄帴鏀禿oInBackground鐨勮繑鍥炲€硷級聽聽聽
聽聽聽聽 * 鍦╠oInBackground鏂规硶鎵ц缁撴潫涔嬪悗鍦ㄨ繍琛岋紝骞朵笖杩愯鍦║I绾跨▼褰撲腑 鍙互瀵筓I绌洪棿杩涜璁剧疆聽聽聽
聽聽聽聽 */聽聽聽聽
聽聽聽 @Override聽聽聽聽
聽聽聽 protected void onPostExecute(String result) {聽聽聽聽
聽聽聽聽聽聽聽 textView.setText("寮傛鎿嶄綔鎵ц缁撴潫" + result);聽聽聽聽
聽聽聽 }聽聽聽聽聽
聽聽聽聽聽聽 //璇ユ柟娉曡繍琛屽湪UI绾跨▼褰撲腑,骞朵笖杩愯鍦║I绾跨▼褰撲腑 鍙互瀵筓I绌洪棿杩涜璁剧疆聽聽聽聽
聽聽聽 @Override聽聽聽聽
聽聽聽 protected void onPreExecute() {聽聽聽聽
聽聽聽聽聽聽聽 textView.setText("寮€濮嬫墽琛屽紓姝ョ嚎绋?);聽聽聽聽
聽聽聽 }聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽
聽聽聽 /**聽聽聽
聽聽聽聽 * 杩欓噷鐨処ntege鍙傛暟瀵瑰簲AsyncTask涓殑绗簩涓弬鏁奥犅犅?
聽聽聽聽 * 鍦╠oInBackground鏂规硶褰撲腑锛岋紝姣忔璋冪敤publishProgress鏂规硶閮戒細瑙﹀彂onProgressUpdate鎵ц聽聽聽
聽聽聽聽 * onProgressUpdate鏄湪UI绾跨▼涓墽琛岋紝鎵€鏈夊彲浠ュUI绌洪棿杩涜鎿嶄綔聽聽聽
聽聽聽聽 */聽聽聽聽
聽聽聽 @Override聽聽聽聽
聽聽聽 protected void onProgressUpdate(Integer... values) {聽聽聽聽
聽聽聽聽聽聽聽 int vlaue = values[0];聽聽聽聽
聽聽聽聽聽聽聽 progressBar.setProgress(vlaue);聽聽聽聽
聽聽聽 }聽聽聽聽
}

文章评论

Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
如何成为一名黑客
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
我是如何打败拖延症的
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
漫画:程序员的工作
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
Java 与 .NET 的平台发展之争
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
程序员眼里IE浏览器是什么样的
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
程序员应该关注的一些事儿
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
程序员最害怕的5件事 你中招了吗?
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
总结2014中国互联网十大段子
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
鲜为人知的编程真相
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
“肮脏的”IT工作排行榜
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
亲爱的项目经理,我恨你
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
那些争议最大的编程观点
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
程序员的一天:一寸光阴一寸金
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
为什么程序员都是夜猫子
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
老美怎么看待阿里赴美上市
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
老程序员的下场
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
不懂技术不要对懂技术的人说这很容易实现
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
代码女神横空出世
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
10个帮程序员减压放松的网站
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
我跳槽是因为他们的显示器更大
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
“懒”出效率是程序员的美德
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
团队中“技术大拿”并非越多越好
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
程序员都该阅读的书
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
要嫁就嫁程序猿—钱多话少死的早
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
程序员周末都喜欢做什么?
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
看13位CEO、创始人和高管如何提高工作效率
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
科技史上最臭名昭著的13大罪犯
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
写给自己也写给你 自己到底该何去何从
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
编程语言是女人
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
当下全球最炙手可热的八位少年创业者
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
程序员的鄙视链
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
10个调试和排错的小建议
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
一个程序员的时间管理
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
聊聊HTTPS和SSL/TLS协议
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
60个开发者不容错过的免费资源库
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
中美印日四国程序员比较
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
Web开发人员为什么越来越懒了?
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
程序猿的崛起——Growth Hacker
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
我的丈夫是个程序员
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
初级 vs 高级开发者 哪个性价比更高?
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
什么才是优秀的用户界面设计
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
5款最佳正则表达式编辑调试器
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
Web开发者需具备的8个好习惯
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
程序员必看的十大电影
Android涔婬andler涓嶢syncTask鐨勫尯鍒?杞
Java程序员必看电影
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有