java - 跳过启动画面

标签 java android android-activity splash-screen dynamic-splash-screen

我设计了一个带按钮的闪屏。 Java代码如下。启动画面的布局包含一些带有动画的文本和名为 skipped splash screen 的按钮。当用户按下按钮时,启动画面必须立即停止并打开下一个 Activity 。但是,当我打开启动画面并按下跳过按钮时,下一个 Activity 将打开,但在启动画面必须运行的持续时间结束后,该 Activity 将再次打开。如何在用户按下跳过按钮时停止启动画面?

  public class Qz1 extends Activity {

        TextView a;
        TextView b;
        TextView c;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_qz1);
            a =(TextView)findViewById(R.id.roundOnea22);
            a.startAnimation(AnimationUtils.loadAnimation(Qz1.this, R.anim.anim_slide_in_left));
            b =(TextView)findViewById(R.id.roundOneb);
            b.startAnimation(AnimationUtils.loadAnimation(Qz1.this, R.anim.anim_slide_in_right));
            c =(TextView)findViewById(R.id.roundme);
            c.startAnimation(AnimationUtils.loadAnimation(Qz1.this, R.anim.anim_slide_in_left));




            Thread thread = new Thread(){

                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    try{
                    sleep(3200);

                    startActivity(new Intent(getApplicationContext(), Qone.class));
                    } catch (InterruptedException e){
                        e.printStackTrace();
                    }
                }
        };
        thread.start();

    }

    public void round1(View v){
       Intent i = new Intent(Qz1.this, Qone.class);
       startActivity(i);
    }
}

最佳答案

假设您希望将第一个 Activity 保留在后台,但不希望线程在完成 hibernate 后立即重新打开第二个 Activity。

为了实现这一点,您可以使您的“线程”成为自定义 Thread 类的全局变量。您可以将其定义为 Activity 的内部类:

MyThread thread;

和类定义:

private class MyThread extends Thread
{
    public boolean bRun = true;

    @Override
    public void run()
    {
        try
        {
            sleep(3200);
            if (bRun)
            {
                startActivity(new Intent(getApplicationContext(), Activity2.class));
            }
        }
        catch (InterruptedException e)
        {
            e.printStackTrace();
        }
    }

}

onCreate()中,你写

thread = new MyThread();
thread.start();

然后你可以像这样改变你的“onClick”方法:

public void round1(View v){
   if (thread != null && thread.isAlive())
   {
       thread.bRun = false;
   }
   Intent i = new Intent(Qz1.this, Qone.class);
   startActivity(i);
}

这将阻止线程启动第二个 Activity ,如果它是通过单击按钮启动的话。

关于java - 跳过启动画面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33780491/

相关文章:

java - 如何在没有 Mocking 框架的情况下测试调用另一个类中另一个方法的方法

android - 如何在 Android 上使用 onPause?

android - 如何在 OnContextItemSelected 事件中获取 View ?

java - 两个Android模拟器之间的通信

java - 正则表达式匹配以 "$"开头的单词

java - "Connection is not associated with a managed connection"更改MySQL的JDBC驱动程序后

java - 我的应用程序非常大(10GB)。如何查看数据或错误代码?

Android - 从不同的 Activity 中获取相同的 Intent

android - 找出哪个 Activity 开始了我的 Activity ?

android - 有没有办法在收到推送通知时将应用程序带到前台?