У меня есть класс, который реализует runnable с функцией запуска.Ошибка Java/Android Thread pause
@Override
public void run()
{
while(running)
{
// thread code goes here::
threadCode();////
// thread code ends here
try
{
Thread.sleep(10);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
Теперь я пытаюсь приостановить поток, если что-то случится. Я попытался использовать wait() и notify(), но он разбил приложение, после чего я пришел с идеей использовать «running» boolean и установил для него значение false, что и для паузы, а затем вернулся к true для возобновления. К сожалению, это все равно приводит к сбою приложения.
Это дает мне фатальную ошибку в logcat.
«Невозможно создать обработчик внутри потока, который не под названием Looper.prepare()»
Есть ли работать простой способ, чтобы приостановить поток? ;/ Thx
EDIT: это не про нить вообще. Я нашел, где он падает. Это сбой в диалоге предупреждения здесь код его:
AlertDialog.Builder builder1 = new AlertDialog.Builder(c);
builder1.setTitle("Game over!");
builder1.setMessage("You survived "+secs+"."+msecs+ " seconds.");
builder1.setCancelable(false);
builder1.setPositiveButton("Replay",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id)
{
// intialStuff();
dialog.cancel();
}
});
builder1.setNegativeButton("Rage quit",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert11 = builder1.create();
alert11.show();
я пытаюсь запустить его на холст класса , может быть, не может работать на классе холста? C - контекст основной деятельности.
Что делает ваш LogCat сказать вам? – 323go