how to display an activity automatically after 5 seconds

后端 未结 4 1875
梦如初夏
梦如初夏 2020-12-12 23:29

In my application I have created a splash screen type of thing in android. It should remain for 5 seconds. My problem is that how I display another activity automatically af

相关标签:
4条回答
  • 2020-12-13 00:03
    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);
    

    and

    private void finishscreen() {
            this.finish();
        }
    
    0 讨论(0)
  • 2020-12-13 00:23

    This can also be done using android CountDownTimer class.

    See this example for 5seconds delay.

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

    You may also need to define your parent activity in AndroidManifest.xml file,

    <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>
    
    0 讨论(0)
  • 2020-12-13 00:25

    You can use thread here
    For example

    // 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();
    
    0 讨论(0)
  • 2020-12-13 00:26
    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 讨论(0)
提交回复
热议问题