タイトルはほとんど問題を説明しています。
押すとこのスレッドのオン/オフを切り替えるボタンがあります。オンとオフが正常にオン/オフになります...一度オンにすると、再度オンにするとクラッシュします。
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は、ボタンを押すことによって切り替えられるブール値です。このアプリは最終的にネットワーク経由でデータを送信するため、このように名付けられました。スレッドはそれを使用して終了します。
アプリのクラッシュによって生成されたスタックトレースは、スレッドの再起動時にクラッシュしたとだけ言っているので、それを修正する方法を理解するのに特に役立ちません-これは問題自体から明らかでした。
私はAndroidSDKとJavaのスレッドの両方に慣れていないので、どこが間違っているのかわかりません。これは、スレッドでファンキーなことをしようとする前に開始する、可能な限り最も単純なスレッドの実装のようです。