标题几乎解释了这个问题。
我有一个按钮,当我按下时可以打开/关闭这个线程。它成功地打开和关闭它......一次,然后如果我尝试再次打开它,它就会崩溃。
private Thread dataThread = new Thread(new Runnable(){
public void run() {
while(transmitPackets){
Log.d("Test","DERP");
}
}
});
它在哪里运行...
toggleButton.setOnClickListener( new View.OnClickListener() {
public void onClick(View v){
transmitPackets = !transmitPackets;
if( transmitPackets ) {
toggleButton.setText("Pause");
dataThread.start();
}
else {
toggleButton.setText("Transmit");
}
}
});
transmitPackets 是按下按钮切换的布尔值。如此命名是因为此应用程序最终将通过网络发送数据。线程也使用它来终止。
应用程序崩溃生成的堆栈跟踪对于弄清楚如何对我修复它并不是特别有帮助,因为它只是说它在重新启动线程时崩溃了——问题本身就很明显。
我是 Android SDK 和 Java 线程的新手,所以我不知道哪里出错了。这似乎是线程的最简单实现,这是我在尝试对线程做任何时髦的事情之前开始的地方。