2011-06-10 49 views
19

在我的应用程序中,我在android中创建了一个闪屏类型的东西。它应该保持5秒钟。我的问题是如何在5秒后自动显示其他活动?启动画面没有按钮,相反,它应该在5秒后自动显示另一个活动,无需点击按钮。如何在5秒后自动显示活动

回答

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

感谢您的答复。这是工作。 – 2011-06-10 09:41:10

+1

@paiNie如果用户按下返回按钮并在用户导航回到活动时恢复计时器,我应该如何暂停计时器? – sarabhai05 2012-10-22 12:36:32

+0

优秀的代码! – 2012-12-15 05:17:28

1

你可以在这里
使用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(); 
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); 

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

这也可以使用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>