Android -- 启动另外一个Activity的方式(2s自动启动)
1. 使用Handler 并且可以设置进入和退出的动画效果
Class < ? > activityClass; Class [ ] paramTypes = { Integer.TYPE , Integer.TYPE }; Method overrideAnimation = null; @ Override public void setView ( ) { setContentView ( R.layout.activity_splash_fade_main ); } @ Override public void initView ( ) { try { activityClass = Class.forName ( "android.app.Activity" ); overrideAnimation = activityClass .getDeclaredMethod ( "overridePendingTransition" , paramTypes ); } catch ( Exception e ) { e.printStackTrace ( ); } Handler handler = new Handler ( ); handler.postDelayed ( new Runnable ( ) { @ Override public void run ( ) { Intent i = new Intent ( FadeSplashScreenActivity.this , FadeMainActivity.class ); startActivity ( i ); finish ( ); // 关闭当前的Activity if (overrideAnimation != null) { try { overrideAnimation.invoke ( FadeSplashScreenActivity.this , android.R.anim.fade_in , android.R.anim.fade_out ); } catch ( Exception e ) { // TODO Auto-generated catch block e.printStackTrace ( ); } } } } , 2000 ); }
2. 使用定时器的做
private long splashDelay = 5000; //5s 以后进行跳转 /** Called when the activity is first created. */ @ Override public void setView ( ) { setContentView ( R.layout.activity_splash_fade2_main ); } @ Override public void initView ( ) { TimerTask task = new TimerTask ( ) { @ Override public void run ( ) { finish ( ); // 关闭Activity Intent mainIntent = new Intent ( ) .setClass ( Fade2MainActivity.this , FadeMainActivity.class ); startActivity ( mainIntent ); overridePendingTransition ( android.R.anim.fade_in , android.R.anim.fade_out ); } }; Timer timer = new Timer ( ); timer.schedule ( task , splashDelay ); }