Страницы

Поиск по вопросам

пятница, 5 апреля 2019 г.

Переход на другое Activity через 5 секунд

Здравствуйте. Хочу в приложении сделать что-то вроде заставки. Пользователь заходит в приложение, ему открывается первая Activity, и через 5 секунд бросает на другое.
Делаю так:
int ii = 0;
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.fon);
try {
TimeUnit.SECONDS.sleep(5); ii = 5;
} catch (InterruptedException e) { // TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(ii);
if (ii == 5) { Intent intent2 = new Intent(this, Web.class); startActivity(intent2); }
}
И получается в результате следующее: Пользователь заходит в приложение, ему видно первое Activity и через 5 секунд открывается другое активити. Но проблема в том что на первом активити ему не видно экрана, то есть не работает setContentView(R.layout.fon);
Что я делаю не так? Буду благодарен за помощь!


Ответ

Вы приостановили главный поток строкой
TimeUnit.SECONDS.sleep(5);
Так у вас вообще должно было вылететь по ANR
Останавливать главный поток не надо. Это плохая практика. Вам надо сделать иначе - запустить отложенную задачу один из множества способов, например, так:
Thread thread = new Thread() { @Override public void run() { try { TimeUnit.SECONDS.sleep(5); Intent intent2 = new Intent(ТУТ_ИМЯ_КЛАССА_АКТИВИТИ.this, Web.class); startActivity(intent2); } catch (InterruptedException e) { e.printStackTrace(); } } };
thread.start();

Комментариев нет:

Отправить комментарий