как положить поток в ожидании в Android - PullRequest
1 голос
/ 18 июня 2010

В моей программе запущен поток Когда генерируется событие Mouse-down, я хочу поместить этот поток в wait (), а в Mouse-up я хочу уведомить этот поток

Но когда я пытался это сделать, он выдает ошибку типа «Объект не заблокирован потоком», поэтому кто-нибудь может мне помочь, как решить эту проблему ..

Ответы [ 3 ]

3 голосов
/ 18 июня 2010

Просто используйте Thread.sleep(), а затем Thread.interrupt(), чтобы разбудить его.

примерно так:

Thread t;

startThread() {
  t = new Thread() {
    public void run () {
       doThings();
       sleep(10000);
    }
  }

  t.start();
}

interruptThread() {
  if (t != null) t.interrupt();
}
2 голосов
/ 18 июня 2010

Вы не можете остановить поток пользовательского интерфейса (это поток, вызвавший событие). Этот поток используется для отправки событий пользовательского интерфейса, и если вы могли бы заставить его ждать (), он сделает ваш пользовательский интерфейс без ответа.

Вам придется создать свою собственную тему.

0 голосов
/ 18 июня 2010

Насколько я знаю, вызов wait () для потока вызывает сбой ... Я не знаю, есть ли безопасный способ приостановить поток (или, по крайней мере, простой способ)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...