Подтвердить что ты не робот

Как автоматически отображать действие через 5 секунд

В моем приложении я создал тип экрана заставки в android. Он должен оставаться в течение 5 секунд. Моя проблема заключается в том, как я автоматически показываю другое действие через 5 секунд? Заставка не имеет кнопки, скорее, она должна отображать другое действие автоматически через 5 секунд без нажатия кнопки.

4b9b3361

Ответ 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>