В моем приложении я создал тип экрана заставки в android. Он должен оставаться в течение 5 секунд. Моя проблема заключается в том, как я автоматически показываю другое действие через 5 секунд? Заставка не имеет кнопки, скорее, она должна отображать другое действие автоматически через 5 секунд без нажатия кнопки.
Как автоматически отображать действие через 5 секунд
Ответ 1
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
final Intent mainIntent = new Intent(LaunchActivity.this, HomeActivity.class);
LaunchActivity.this.startActivity(mainIntent);
LaunchActivity.this.finish();
}
}, 5000);
Ответ 2
TimerTask task = new TimerTask() {
@Override
public void run() {
Intent intent = new Intent(SplashScreen.this, MainMenu.class);
startActivity(intent);
finishscreen();
}
};
Timer t = new Timer();
t.schedule(task, 5000);
и
private void finishscreen() {
this.finish();
}
Ответ 3
Вы можете использовать thread здесь
Например
// thread for displaying the SplashScreen
Thread splashTread = new Thread() {
@Override
public void run() {
try {
int waited = 0;
while(_active && (waited < _splashTime)) {
sleep(500);
if(_active) {
waited += 500;
}
}
} catch(InterruptedException e) {
// do nothing
} finally {
finish();
// start your activity here using startActivity
stop();
}
}
};
splashTread.start();
Ответ 4
Это также можно сделать с помощью класса android CountDownTimer
.
См. этот пример для задержки 5seconds
.
new CountDownTimer(5000, 1000) {
public void onFinish() {
Intent startActivity = new Intent(ThisActivity.this,ActivityToStart.class);
startActivity(startActivity);
finish();
}
public void onTick(long millisUntilFinished) {
}
}.start();
Вам также может потребоваться определить родительскую активность в файле AndroidManifest.xml
,
<activity
android:name=".ActivityToStart"
android:label="Back"
android:parentActivityName=".MainActivity" >
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>