Здравствуйте. Хочу в приложении сделать что-то вроде заставки.
Пользователь заходит в приложение, ему открывается первая 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();
Комментариев нет:
Отправить комментарий