Android Thread делает интерфейс пользователя пустым

1

Я написал a Thread в своем приложении. Когда поток начинает работать, экран пользовательского интерфейса становится пустым. Как я могу избежать этого?

public class SetTickerText extends Thread
{
    @Override
    public void run()
    {
        while(true)
        {
            SystemClock.sleep(25000);
            Log.i("Map", "after wait");
        }
    }
  • 0
    Как вы начинаете тему?
  • 0
    вызвав его из метода OnCreate. m_SetTickerText.run ();
Показать ещё 1 комментарий
Теги:
multithreading

2 ответа

3
Лучший ответ

Это будет что-то вроде (у меня нет компилятора):

new SetTickerText().start()

По сути, когда вы указываете, что объект потока запускается, он закручивает новый поток, который затем вызывает запуск для вас. То, что вы делаете, - это вызов run из потока пользовательского интерфейса, как и любая другая функция, поэтому он блокирует ваш поток пользовательского интерфейса от возврата

  • 0
    Спасибо, это работает :)
1

Основная проблема заключается в использовании SystemClock.sleep. Этот метод заставит CPU переходить в глубину. Что вы хотите сделать, так это спящий поток, который выполняется с помощью Thread.sleep: http://developer.android.com/reference/java/lang/Thread.html#sleep(long).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню