我遇到了问题,那是我的SplashScreen。它构建为一个介绍,3秒后显示程序的主菜单。 无论如何,如果我在SplashScreen显示的时间内按下Back或Home按钮,它会关闭,但是我在SplashScreen之后选择遵循的活动仍将在三秒后运行。
我的代码:*****更新代码*****
Handler ur = new Handler();
myRun = new Runnable() {
public void run() {
mainIntent = new Intent(SplashScreen.this,MyApp.class);
SplashScreen.this.startActivity(mainIntent);
SplashScreen.this.finish();
overridePendingTransition(R.anim.fadein,
R.anim.fadeout);
}
};
ur.postDelayed(myRun, SPLASH_DISPLAY_TIME);
}
protected void onStop() {
super.onStop();
ur.removeCallbacks(myRun);
}
即使我在此SplashScreen中有onStop(),下一个活动仍将在SPLASH_DISPLAY_TIME之后运行。
由于我更改了代码,因此在按下Home按钮并且SplashScreen消失之后我强制关闭,同时,我无法启动第二个活动。
答案 0 :(得分:2)
尝试这样做:
private static final int SPLASH_DISPLAY_TIME = 3000;
Handler ur = new Handler();
Runnable yourRunnable = new Runnable() {
public void run() {
mainIntent = new Intent(SplashScreen.this,MyApp.class);
SplashScreen.this.startActivity(mainIntent);
SplashScreen.this.finish();
overridePendingTransition(R.anim.fadein,
R.anim.fadeout);
}
};
ur.postDelayed(yourRunnable, SPLASH_DISPLAY_TIME);
然后,onDestroy上的某个地方或用于检测启动画面活动何时关闭的任何方法:
// somewhere
ur.removeCallbacks(yourRunnable);