基本上当手机上按下BACK按钮时,我想阻止特定活动返回到android中的前一个活动。
具体来说,我有登录和注册屏幕,当成功登录/注册时,都会启动一个名为HomeScreen的新活动。启动HomeScreen后,我想阻止用户按下BACK键返回登录或注册屏幕,我也希望他们能够在HomeScreen中的片段之间导航,例如,他们可以导航到分享,沟通等片段。
我想在backKey上使用finish()方法,但是这会退出一个应用程序而我也不想这样做。
答案 0 :(得分:1)
调用finish(),启动HomeScreen意图:
Intent intent = new Intent(this, HomeScreen.class);
startActivity(intent);
finish();
答案 1 :(得分:1)
您可以尝试:
public void onBackPressed() {
if (getSupportFragmentManager().getBackStackEntryCount() > 1) {
getSupportFragmentManager().popBackStack();
} else {
finish();
}
}
希望这有帮助。
答案 2 :(得分:0)
让我们说这是您的活动流程
SplashActivity -----> HomeScreenActivity
1)从BackStack删除SplashActivity
SplashActivity.java
Intent intent = new Intent(this, HomeScreenActivity.class);
startActivity(intent);
finish();
2)在HomeScreenActivity中覆盖onBackPressed()
覆盖此方法时, 请勿调用 super.onBackPressed()
,因为默认实现会在内部调用finish()方法。
HomeScreenActivity.java
public void onBackPressed() {
//super.onBackPressed(); <-- Dont call this
/* Your logic to navigate between fragments goes here */
}