在我的应用程序中,我有一个启动应用程序时打开的SplashScreen。 1秒后登录活动打开。但是在应用程序启动后立即按下HOME按钮时出现问题。如果我点击HOME按钮,只有当启动画面可见时,应用程序才会关闭,但几秒钟后(aprox.2秒),即使应用程序不再可见,登录活动也会打开(它仅在后面显示)堆)。
以下是我开始登录活动的方法:
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
// Show login screen
Utility.startLoginActivity(SplashScreenActivity.this);
}
}, 1000);
这是startLoginActivity()方法:
Intent intent = new Intent(activity, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
activity.startActivity(intent);
// Finish the calling activity
activity.finish();
我该如何解决这个问题?
答案 0 :(得分:2)
您应该添加检查启动活动是否可见:
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
if (SplashActivity.isVisible()) {
// Show login screen
Utility.startLoginActivity(SplashScreenActivity.this);
}
}
}, 1000);
SplashActivity.isVisible()方法可以按照此处所述实现:How to check if activity is in foreground or in visible background?