android編程之多線程編程實例分析
本文實例講述了android編程之多線程編程實現(xiàn)方法。分享給大家供大家參考。具體分析如下:
該功能與前面《android開發(fā)socket編程之udp發(fā)送實例分析》中一樣,當(dāng)按下鍵后,發(fā)送文本框中數(shù)據(jù)給PC。不同的是把發(fā)送數(shù)據(jù)的功能放在一個線程socket_send中。
一、環(huán)境:
win7 + eclipse + ndk
二、代碼:
主類test_socket.java
package test.soket; //import com.test_button.R; import java.io.DataOutputStream; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.Socket; import java.net.SocketException; import java.net.UnknownHostException; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class test_socket extends Activity { public static TextView show; public static Button press; public static boolean flag; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //開辟控件空間 show = (TextView)findViewById(R.id.editText1); press = (Button)findViewById(R.id.button1); flag = false; soket_send thread = new soket_send(); thread.init(); thread.start(); press.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { flag = true; } }); } }
線程類socke_sendt.java:
package test.soket; import java.io.DataOutputStream; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.Socket; import java.net.SocketException; import java.net.UnknownHostException; import java.util.LinkedList; import android.media.AudioFormat; import android.media.AudioRecord; import android.media.MediaRecorder; import android.util.Log; public class soket_send extends Thread { private static final int MAX_DATA_PACKET_LENGTH = 40; private byte[] buffer = new byte[MAX_DATA_PACKET_LENGTH]; private DatagramPacket dataPacket; private DatagramSocket udpSocket; public void init() { try { udpSocket = new DatagramSocket(5554); } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } dataPacket = new DatagramPacket(buffer, MAX_DATA_PACKET_LENGTH); String str = "hello,jdh"; //這是要傳輸?shù)臄?shù)據(jù) byte out [] = str.getBytes(); //把傳輸內(nèi)容分解成字節(jié) dataPacket.setData(out); dataPacket.setLength(out.length); dataPacket.setPort(5554); try { InetAddress broadcastAddr = InetAddress.getByName("192.168.0.248"); dataPacket.setAddress(broadcastAddr); udpSocket.send(dataPacket); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void run() { while (true) { if (test_socket.flag) { //獲得輸入框文本 CharSequence str =test_socket.show.getText(); byte out[] = str.toString().getBytes(); dataPacket.setData(out); dataPacket.setLength(out.length); try { InetAddress broadcastAddr = InetAddress.getByName("192.168.0.248"); dataPacket.setAddress(broadcastAddr); udpSocket.send(dataPacket); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } test_socket.flag = false; } } } }
注意:程序中采用的線程間通信的方法是把需要共享的變量設(shè)置成public屬性
希望本文所述對大家的Android程序設(shè)計有所幫助。
- Android 中 EventBus 的使用之多線程事件處理
- Android中的Handler與多線程應(yīng)用實例
- Android SQLite3多線程操作問題研究總結(jié)
- Android中創(chuàng)建多線程管理器實例
- android 多線程技術(shù)應(yīng)用
- Android編程之canvas繪制各種圖形(點,直線,弧,圓,橢圓,文字,矩形,多邊形,曲線,圓角矩形)
- Android編程根據(jù)系列圖片繪制動畫實例總結(jié)
- 使用Android自定義控件實現(xiàn)滑動解鎖九宮格
- android 自定義控件 自定義屬性詳細(xì)介紹
- Android開發(fā)之多線程中實現(xiàn)利用自定義控件繪制小球并完成小球自動下落功能實例
相關(guān)文章
Android中FoldingLayout折疊布局的用法及實戰(zhàn)全攻略
這篇文章主要介紹了Android中FoldingLayout折疊布局的用法及實例,通過FoldingLayout我們可以制作出炫酷的菜單折疊效果,文中的例子講解得非常詳細(xì),需要的朋友可以參考下2016-02-02Android下拉刷新控件SwipeRefreshLayout源碼解析
這篇文章主要為大家詳細(xì)解析Android下拉刷新控件SwipeRefreshLayout源碼,感興趣的小伙伴們可以參考一下2016-07-07Android中ImageView使用網(wǎng)絡(luò)圖片資源的方法
這篇文章主要介紹了Android中ImageView使用網(wǎng)絡(luò)圖片資源的方法,較為詳細(xì)的分析了ImageView調(diào)用網(wǎng)絡(luò)圖片的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10Android開發(fā)手冊RatingBar星級評分控件實例
這篇文章主要為大家介紹了Android開發(fā)手冊RatingBar星級評分控件實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Android中activity從創(chuàng)建到顯示的基本介紹
這篇文章主要給大家介紹了關(guān)于Android中activity從創(chuàng)建到顯示的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對各位Android初學(xué)者們具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起看看吧。2017-11-11Android studio實現(xiàn)兩個界面間的切換
這篇文章主要為大家詳細(xì)介紹了Android studio實現(xiàn)兩個界面間的切換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04總結(jié)安卓(Android)中常用的跳轉(zhuǎn)工具
在大家日常開發(fā)的時候經(jīng)常會用到各式各樣的跳轉(zhuǎn),如跳轉(zhuǎn)到QQ、微信聊天界面、跳轉(zhuǎn)到聯(lián)系人界面或者跳轉(zhuǎn)到瀏覽器和照相機(jī)等等之類的,本文將常用到的一些跳轉(zhuǎn)集合到一起,這樣更方便大家以后使用,有需要的小伙伴們可以參考借鑒。2016-08-08Android 實時監(jiān)測(監(jiān)聽)網(wǎng)絡(luò)連接狀態(tài)變化
這篇文章主要介紹了Android 實時監(jiān)測(監(jiān)聽)網(wǎng)絡(luò)連接狀態(tài)變化的相關(guān)知識,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-06-06