Название в значительной степени объясняет проблему.Перезапуск завершенной темы приводит к сбою (Android SDK)
У меня есть кнопка, когда я нажимаю кнопки включения/выключения этой темы. Он успешно включается и выключается ... один раз, затем он падает, если я пытаюсь включить его снова.
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, поэтому я не знаю, где я могу ошибиться. Кажется, это самая простая реализация потока, который я начинаю, прежде чем попытаюсь сделать что-то напуганное с потоком.
Каждый ответ здесь получил, спасибо, ребята! Я просто создал поток в OnClickListener, и он работает красиво. Для чего это стоит, это исключение не содержится в трассировке стека, вызванной сбоем. Я ценю помощь в любом случае. – Wuzseen
@Wuzseen: Ну, что же делает * трассировка стека? Вы должны сделать шаг назад и проанализировать, почему вы не смогли сами диагностировать это. Вы говорите, что трассировка стека «не особенно полезна», но, возможно, если бы вы действительно скопировали ее в свой вопрос, мы могли бы помочь вам понять, как она * полезна ... –