android - 当按下返回按钮时,启动画面退出并打开身份验证 Activity

标签 android splash-screen android-lifecycle

我创建了两个 Activity “SplashActivity 和 AuthenticationActivity” 当我启动应用程序时,它会加载初始屏幕 5 秒钟,然后继续到 AuthenticationActivity。我的问题是,当我运行该应用程序时,它会加载启动画面,但在我单击后退按钮后的 5 秒内,SplashActivity 退出,并且 AuthenticationActivity 立即出现在前景。 有谁知道如何在我单击后退按钮时退出我的应用程序?

到目前为止,这是我的代码:

public class SplashActivity extends Activity {

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

    Thread splashTimer = new Thread(){


        public void run(){
            try{
                sleep(5000);
                startActivity(new Intent(SplashActivity.this,AuthenticationActivity.class));
                finish();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }finally {
                finish();
            }
        }

    };
    splashTimer.start();
}

@Override
public void onBackPressed() {
    super.onBackPressed();
    
}

@Override
protected void onPause() {
    super.onPause();
}

@Override
protected void onResume() {
    super.onResume();

}}

最佳答案

Timer timer;
TimerTask timerTask;
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash);
    initialize();
}

private void initialize()
{
    timer = new Timer();
    timerTask = new TimerTask()
    {
        @Override
        public void run()
        {
            //Start your activity here
        }
    };

    timer.schedule(timerTask,2500);
}

@Override
public void onBackPressed() {
    super.onBackPressed();
    timer.cancel();
}

或者你也可以使用 Handler

  Handler handler;
  Runnable runnable;

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

private void initialize()
{
   handler = new Handler();
  runnable = new Runnable()
            {
                @Override
                public void run()
                {
                    //start your activity here
                }
            };
   handler.postDelayed(runnable, 5000);
   }

 @Override
public void onBackPressed() {
    super.onBackPressed();
     handler.removeCallbacks(runnable);
 }

关于android - 当按下返回按钮时,启动画面退出并打开身份验证 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34312213/

相关文章:

java - 没有源代码的android应用程序中的方法覆盖

android - Flutter 按住闪屏 3 秒。如何在 Flutter 中实现闪屏?

android - 从 backstack 恢复 Fragment 时更改 EditText 值

android - 当电话打断应用程序时,android 应用程序会发生什么情况?

android - ByteBuffer 不释放内存

android - 在 Espresso 中,我如何测试 textview 只显示两行

android - 如何设置默认操作栏的高度和宽度?

android - 未出现在 xml 中定义的 SplashScreen 方法(无 Activity )

.net - WinForms 中具有 alpha channel 透明度/不透明度的启动屏幕

android - Activity 生命周期图与生命周期描述的矛盾