问题描述
我的应用程序中有两个 Activity MainActivity
和 BannerActivity
。从主要 Activity 中,我在 onCreate
方法中启动 BannerActivity
。但我首先看到 MainActivity
屏幕一秒钟,然后看到 BannerActivity
屏幕。
问题
我该如何做才能让 BannerActivity
首先显示,倒计时计时器停止后,BannerActivity
将在 MainActivity
到达后关闭屏幕。
主要 Activity
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/* Show banner activity for several seconds then close it. */
Intent bannerIntent = new Intent(MainActivity.this, BannerActivity.class);
this.startActivity(bannerIntent);
}
};
横幅 Activity
public class BannerActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
/* Make banner fullscreen. */
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_banner);
/* Launch count down timer for several seconds. */
CountDownTimer countDownTimer = new CountDownTimer(3000, 1000) {
@Override
public void onTick(long millisUntilFinished) { /* Not used. */ }
@Override
public void onFinish() {
BannerActivity.this.finish();
}
}.start();
}
@Override
public void onBackPressed() {
/* Lock back button presses. */
super.onBackPressed();
}
};
最佳答案
您需要一个启动屏幕:
http://www.thiagorosa.com.br/en/tutorial/part01-splash-screen
public class GameSplash extends Activity {
// time to wait on the splash screen
private static final int SPLASH_SCREEN_DELAY = 3000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
new Thread() {
@Override
public void run() {
try {
// do any heavy initialization here
// wait a few seconds before going to the next screen
sleep(SPLASH_SCREEN_DELAY);
}
catch (InterruptedException e) {
}
catch (Exception e) {
}
finally {
// start the level selection screen
Intent intentSelect = new Intent(GameSplash.this, GameSelect.class);
startActivity(intentSelect);
}
}
}.start();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// ignore any key press on the splash screen
return true;
}
}
关于java - 显示来自 onCreate 的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16773088/