2011-06-10 23 views
19

En mi aplicación, he creado un tipo de pantalla de bienvenida en android. Debería permanecer durante 5 segundos. Mi problema es cómo mostrar otra actividad automáticamente después de 5 segundos? La pantalla de inicio no tiene un botón, sino que debe mostrar otra actividad automáticamente después de 5 segundos sin hacer clic en el botón.cómo mostrar una actividad automáticamente después de 5 segundos

Respuesta

56
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); 
+0

gracias por la respuesta. está funcionando. –

+1

@paiNie ¿cómo debería pausar el temporizador si el usuario presiona el botón Atrás y reanuda el temporizador cuando el usuario navega de regreso a la actividad? – sarabhai05

+0

Excelente código !! –

1

Puede utilizar thread aquí
Por ejemplo

// 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(); 
9
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); 

y

private void finishscreen() { 
     this.finish(); 
    } 
0

Esto también se puede hacer utilizando androide clase CountDownTimer.

Consulte este ejemplo para 5seconds retraso.

new CountDownTimer(5000, 1000) { 
    public void onFinish() { 
     Intent startActivity = new Intent(ThisActivity.this,ActivityToStart.class); 
     startActivity(startActivity); 
     finish(); 
    } 

    public void onTick(long millisUntilFinished) { 
    } 

}.start(); 

También puede ser necesario para definir la actividad de su padre en AndroidManifest.xml archivo,

<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> 
Cuestiones relacionadas