




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、An droid開發(fā)時(shí)的Socket通信介紹作者:日期:2012-4-10Socket通信當(dāng)服務(wù)器端斷開時(shí),用戶端可以進(jìn)行如下設(shè)置解決方法:/ global variablespublic Socket socket = nu II;private In etSocketAddress isa = nu II;private static final Stri ng HOST = 6;private static final Stri ng PORT = 5000;private static final Stri ng TIMEOUT = 100;/conn ect to
2、 servertrysocket = new Socket();isa = new In etSocketAddress(HOST,PORT);socket.co nn ect(isa,TIMEOUT);catch(IOExcepti on e)e.pri ntStackTrace();finn allythis.disc onn ectToServer();/disc onnect to servertryif(socket != n ull)socket.close();catch(IOExcepti on e)e.pri ntStackTrace();publicMyConn ector
3、(Stri ng address,int port)try socket=new Socket();isa =new In etSocketAddress(address,port);socket.connect(isa , TIMEOUT);din =new DataI nputStream(socket .getI nputStream();/獲得輸入流doutnew DataOutputStream(socket .getOutputStream();/獲得輸出流 catch (Exception e)e.pri ntStackTrace();socket = n ullfin ally
4、1) 之前鏈接socket直接用:Log.i ( MyConnector,socket is or not +socketLog.i ( MyConnector,din is or not +din );Log.i ( MyConnector,dout is or not + dout ););100ms超時(shí)時(shí)間,也會(huì)過很長(zhǎng)時(shí)間才會(huì)Socket socket = new Socket(6,5000); socket.setTimeout(100);這樣,如果出現(xiàn)服務(wù)器端未開啟時(shí),即使設(shè)置了捕捉到 lOException現(xiàn)在先定義isa,通過isa跟socket鏈接 可以解決
5、上面的問題2)解決方法:class MyThread exte nds Threadpublic void run()try socket = new Socket( address1 , port1 );din = new DataI nputStream(socket .getI nputStream();/獲得輸入流dout = new DataOutputStream(socket .getOutputStream();/獲得輸出流 catch (Exception e)e.pri ntStackTrace();/public MyConn ector(Stri ng address,
6、i nt port)/address1 = address;/port1 = port;/MyThreadmt = new MyThread();/mt.start();/try/*Thread.sleep(outtime);*/for(i nt i = 0;i 50; i+)/ /Thread.sleep(outtime);/if(socket = n ull) contin ue;/else break;/catch(Excepti on e)/e.pri ntStackTrace();/if (socket = n ull)/mt. in terrupt();/socket = null
7、;/聲明Socket 對(duì)象/din = null;/聲明數(shù)據(jù)輸入流對(duì)象/dout = null; /聲明數(shù)據(jù)輸岀流對(duì)象/Log.i(MyCo nn ector, socket is or not +socket);/Log.i(MyConnector, din is or not +din);/Log.i(MyCo nn ector, dout is or not +dout);/ Toast的使用:An droid中的Toast是一種簡(jiǎn)易的消息提示框,toast提示框不能被用戶點(diǎn)擊,toast會(huì)根據(jù)用 戶設(shè)置的顯示時(shí)間后自動(dòng)消失。創(chuàng)建Toast兩個(gè)方法創(chuàng)建ToastJava代碼makeTex
8、t(C on text con text, int resId, int durati on)參數(shù):con text是toast顯示在哪個(gè)上下文,通常是當(dāng)前Activity ;resld指顯示內(nèi)容引用 Resouce 那條數(shù)據(jù),就是從 R類中去指定顯示的消息內(nèi)容;duration指定顯示時(shí)間,Toast默認(rèn)有LENGTH_SHORT和LENGTH_LONG兩常量,分別表示短時(shí)間顯示和長(zhǎng)時(shí)間顯示。Java代碼makeText(C on text con text, CharSeque nee text, int duratio n)參數(shù)con text和duratio n與第一個(gè)方法相同,參數(shù)t
9、ext可以自己寫消息內(nèi)容。用上面任意方法創(chuàng)建 Toast對(duì)象之后調(diào)用方法show()即可顯示。Java代碼Toast toast = Toast.makeText(ToastDemoActivity.this,這是一個(gè)普通的 Toast!, Toast丄ENGTH_SHORT);toast.show();注意:Toast只能在主線程中顯示,通過Handler來實(shí)現(xiàn).ProgressDialog也是只能在中線程中顯示,但是可以在任意線程中取消ProgressDialog.dismiss().AlterDialog 的使用:要?jiǎng)?chuàng)建一個(gè)如圖所示的窗口,使用setButton。方法:AlertDial
10、og.Builder builder = new AlertDialog.Builder(this);builder.setMessage(Are you sure you want to exit?).setPositiveButt on (Yes, new Dialogl nterface.O nClickListe ne()public void on Click(Dialog In terface dialog, i nt id) MyActivity.this.fi nish();一).setNegativeButt on (No, new Dialog In terface. On
11、 ClickListe ne()public void on Click(Dialog In terface dialog, i nt id) dialog.ca ncel();一);AlertDialog alert = builder.create();首先,使用setMessage(ChaSequenee)為對(duì)話框增加一條消息。 然后,開始連續(xù)調(diào)用方法, 使用setCancelable(boolean)將對(duì)話框設(shè)為不可取消(不 能使用back鍵來取消)。對(duì)每一個(gè)按鈕,使用set.Button()方法,該方法接受按鈕名稱和一個(gè) DialogInterface.OnClickListener
12、 ,該監(jiān)聽器定義了當(dāng)用戶選擇 該按鈕時(shí)應(yīng)做的動(dòng)作。注意:對(duì)每種按鈕類型,只能為 AlertDialog創(chuàng)建一個(gè)。也就是說,一個(gè) AlertDialog不能有兩個(gè)以上的positive按鈕。這使得可能的按 鈕數(shù)量最多為三個(gè):肯定、否定、中性。這些名字和實(shí)際功能沒有聯(lián)系,但是將幫助你記憶它們各做什么事情。ProgressDialog 的使用:mpDialog = new ProgressDialo g(Test_ProgressDialog.this);mpDialog.setProgressStyle(Progr essDialog.STYLE_SPINNER);設(shè)置風(fēng)格為圓形進(jìn)度條mpDialog.setTitle( 提示);/ 設(shè) 置標(biāo)題mpDialog.setlco n(R.drawable.ico n);/設(shè)置圖標(biāo)mpDialog.setMessage(這是一個(gè)圓 形進(jìn)度條);mpDialog.setI ndeterm in ate(false);/設(shè)置進(jìn)度條是否為不明確mpDialog. setCancelable(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 老年教育課程設(shè)置與2025年創(chuàng)新教學(xué)模式評(píng)價(jià)體系構(gòu)建報(bào)告
- 《公差配合與技術(shù)測(cè)量》課件-第4章 表面粗糙度及其檢測(cè)(公差配合與技術(shù)測(cè)量)
- 快時(shí)尚品牌如何應(yīng)對(duì)時(shí)尚零售行業(yè)模式變革中的產(chǎn)品創(chuàng)新與市場(chǎng)定位策略研究與應(yīng)用策略報(bào)告
- Unit+3+Family+matters+Understanding+Ideas外研版高中英語(2019)必修第一冊(cè)
- 新課標(biāo)公開課Unit1 Happy Holiday Section B 1a-1d課件+內(nèi)嵌視頻-2025-2026學(xué)年新人教版八年級(jí)英語上冊(cè)
- 河北省雄安新區(qū)雄安十校2024-2025學(xué)年高一下學(xué)期7月期末考試歷史試卷
- 太空養(yǎng)魚題目及答案
- 題目及答案100題
- 養(yǎng)殖服務(wù)管理辦法
- 兼業(yè)代理管理辦法
- 運(yùn)營車輛調(diào)度管理課件
- 中醫(yī)康復(fù)試題及答案
- 2025年個(gè)人租賃房屋合同范本
- 2025年綜合類-民航客運(yùn)員-民航客運(yùn)航班配載歷年真題摘選帶答案(5卷單選題100道)
- 安全應(yīng)急培訓(xùn)課件
- 全國五小行業(yè)管理辦法
- 2024年云南楚雄州金江能源集團(tuán)有限公司招聘考試真題
- 回族做禮拜的念詞集合6篇
- 飛行性能-飛行計(jì)劃課件
- 村委會(huì)換屆選舉規(guī)程課件
- 慢性萎縮性胃炎概述課件
評(píng)論
0/150
提交評(píng)論