2016-06-30 4 views
-2

Я реализую заставку в соответствии с учебным пособием here, однако заставка закрашивается очень быстро почти мгновенно. Каким будет лучший способ включить таймер только для запуска нового действия после, например, 1 секунду. My Splash screen Файл активности выглядит следующим образом:timer java start activity

public class SplashActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     Intent intent = new Intent(this, MainActivity.class); 
     startActivity(intent); 
     finish(); 
    } 
} 

Этот подход основан на ресурсе, пригодном для рисования и стиля.

+0

Вы можете использовать 'handler.postDelayed 'и в нем установите тайм-аут, который вы хотите, и вызовите метод для запуска ew. В основном ответ, приведенный ниже: D – Vucko

+0

http://stackoverflow.com/questions/8958459/how-to-show-a-splash-screen-for-3-seconds-on-android – Miles

+0

http://stackoverflow.com/ вопросы/5486789/как-делать-я-макияж а-заставка –

ответ

1

Код для Splash: -

import android.content.Intent; 
import android.os.Bundle; 
import android.os.Handler; 
import android.support.v7.app.AppCompatActivity; 
import android.view.WindowManager; 

public class Splash extends AppCompatActivity { 
    // Splash screen timer 

    private static int SPLASH_TIME_OUT = 3000; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.splash_activity); 

     // Showing splash screen with a timer. 
     new Handler().postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       // Start your application main_activity 
       Intent i = new Intent(Splash.this, MainActivity.class); 
       startActivity(i); 

       // Close this activity 
       finish(); 
      } 
     }, SPLASH_TIME_OUT); // Timer 
    } 
} 
1

Самый простой способ будет использовать Handler:

new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      Intent intent = new Intent(this, MainActivity.class); 
      startActivity(intent); 
      finish(); 
     } 
    }, DateUtils.SECOND_IN_MILLIS); 
0
public class SplahActivity extends Activity { 

    public static final int Tick = 1000; 
    public static final int Complete = 5000; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_splash); 

     new CountDownTimer(Complete, Tick) { 

      public void onTick(long millisUntilFinished) { 
      } 

      public void onFinish() { 
       //start Activity 
       Intent intent = new Intent(this, MainActivity.class); 
       startActivity(intent); 
       finish(); 
      } 
     }.start(); 
    } 
0

Используйте этот

timerHandler = new Handler(); 
getmi_runnable = new Runnable() { 
@Override 
public void run() { 
    Intent intent = new Intent(FirstActivity.this, SecondActivity.class); 
    startActivity(intent); 
    finish(); 
    } 
}; 
timerHandler.postDelayed(getmi_runnable, 4000L);