Я написал a Thread
в своем приложении. Когда поток начинает работать, экран пользовательского интерфейса становится пустым. Как я могу избежать этого?
public class SetTickerText extends Thread
{
@Override
public void run()
{
while(true)
{
SystemClock.sleep(25000);
Log.i("Map", "after wait");
}
}
Это будет что-то вроде (у меня нет компилятора):
new SetTickerText().start()
По сути, когда вы указываете, что объект потока запускается, он закручивает новый поток, который затем вызывает запуск для вас. То, что вы делаете, - это вызов run из потока пользовательского интерфейса, как и любая другая функция, поэтому он блокирует ваш поток пользовательского интерфейса от возврата
Основная проблема заключается в использовании SystemClock.sleep. Этот метод заставит CPU переходить в глубину. Что вы хотите сделать, так это спящий поток, который выполняется с помощью Thread.sleep: http://developer.android.com/reference/java/lang/Thread.html#sleep(long).