我正在開發具有服務類的Android應用程序。我服務課,我必須開始一個線程。它工作正常。但我需要停止線程。我曾與Android:停止線程
mThread.destroy();
mThread.stop();
使用,但都被棄用,我已經使用
mThread.interrupt();
,但它仍然無法正常工作。
代碼
public void Receivepatientattributes(byte[] readBuf, int len) {
if (readBuf[8] == 6){
pktcount++;
byte pkmsb = readBuf[11];
byte pklsb = readBuf[10];
int pkresult = (pkmsb << 8) | ((int)pklsb & (0x00FF));
System.out.println("Packet : "+pktcount+" : "+pkresult);
if(pkresult == pktcount){
for(int i = 0, j = 14; i < len ; i++, j++) {
queue.add(readBuf[j]);
}
if(mThread.getState() == Thread.State.NEW) {
mThread.start();
System.out.println("Start Thread ");
} else {
System.out.println("No Thread Found");
}
} else {
displayToast("Packet Count Error");
}
}
}
}
class CommunicationThread implements Runnable {
@Override
public void run() {
do{
if(queue.getFirst() == (byte)0x80) {
System.out.println("absolu1 " + queue.getFirst());
getabs_data();
}
} while (queue.size() > 132);
if(mThread.getState() == Thread.State.RUNNABLE) {
mThread.interrupt();
}
}
}
http://www.ibm.com/developerworks/library/j-jtp05236/是一個很好的文章WRT正確中斷線程。 – zapl