我嘗試構建一個應用程序來控制無人機PARROT。 爲此,我在無人機和設備之間創建一個插槽,並將其放入一個線程中。 起初線程正確運行,無人機起飛,但現在(我沒有觸及我的代碼),無人機不想起飛。我注意到該線程不會立即運行(而之前正確運行) 這裏是我的代碼與主題:Android:線程無法啓動
String commande="";
byte[] cmdToByte;
InetAddress IpDrone;
DatagramSocket clientSocket;
boolean etat;
DatagramPacket sendPacketWithCmd;
private byte[] ip = {(byte)192, (byte)168, (byte)1, (byte)1 };
boolean isRunning = true;
private final static long TIME_SLEEP= 20;
public void run() {
try {
IpDrone = InetAddress.getByAddress(ip);
} catch (UnknownHostException e1) {
etat = true;
}
try {
clientSocket = new DatagramSocket();
} catch (SocketException e) {
etat = true;
}
while(isRunning){
runControl();
etat = true;
try {
Thread.sleep(TIME_SLEEP);
} catch (InterruptedException e) {
}
}
}
public void runControl(){
commande = "AT*REF=1,290717696<LF>AT*REF=2,290717952<LF>AT*REF=3,290717696<LF>";
cmdToByte = commande.getBytes();
try {
sendPacketWithCmd = new DatagramPacket(cmdToByte,cmdToByte.length,IpDrone,5556);
clientSocket.send(sendPacketWithCmd);
} catch (IOException e) {
e.printStackTrace();
etat = true;
}
etat = true;
isRunning=false;
clientSocket.disconnect();
clientSocket.close();
}
我知道有,但的AsyncTask我真的想用我自己的線程來做到這一點。 所以我想知道我的問題是什麼,爲什麼我的線程無法啓動(在主要活動中,我用start()運行我的線程)。 提前感謝您!
可以ü請調整你的代碼? – 2013-05-07 09:42:43