调用SplashScreenActivity后,应用程序最小化

时间:2018-12-29 07:53:17

标签: java android

我遇到以下问题:我想创建一个启动画面,可以在游戏循环中调用它(这是“下一级”启动画面)。

当我叫启动画面时,它可以处理动画,但除了5秒钟外,应用程序都会自动最小化。初始屏幕调用发生在主要活动已经开始之后。

我的SplashActivity看起来像这样:

public class SplashActivity extends AppCompatActivity {
    private ImageView logo;

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

        logo = findViewById(R.id.logo);

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                finish();
            }
        }, 5000);

        Animation anim = AnimationUtils.loadAnimation(this, R.anim.viewanimation);
        logo.startAnimation(anim);
    }
}

我想通过以下调用在我的GameLoop中调用它:

Intent i = new Intent(gamePanel.getContext(), SplashActivity.class);
gamePanel.getContext().startActivity(i);    

将打开SplashScreen,并且动画可以工作,但随后应该再次显示MainActivity(不是重新开始)。

2 个答案:

答案 0 :(得分:1)

尝试这个Splash.java

    public class Splash extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_splash);
            Thread myThread=new Thread(){
               @Override
            public void run() {
                try {
      Animation anim = AnimationUtils.loadAnimation(this, R.anim.viewanimation);
                    logo.startAnimation(anim);  
//sleep time after animation
                    sleep(3000);  
//to end the splash screen and call next activity with Intent
                    finish();
                    Intent intent = new Intent(Splash.this,MainActivity.class);
                    startActivity(intent);

                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            };
            myThread.start();

        }
    }  

在清单文件中,Splash.java是您要启动的第一个活动,

<activity android:name=".Splash">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>  

希望有帮助。

答案 1 :(得分:0)

使用finishActivity()代替finish().

finish()完成活动并应关闭时调用此方法。 ActivityResult会传播回通过onActivityResult().发起您的任何人

finishActivity(int requestCode)用于完成您先前从startActivityForResult(Intent, int)开始的另一项活动

相关问题