如何禁用某些活动而不是碎片

时间:2017-03-01 14:53:58

标签: android android-fragments

基本上当手机上按下BACK按钮时,我想阻止特定活动返回到android中的前一个活动。

具体来说,我有登录和注册屏幕,当成功登录/注册时,都会启动一个名为HomeScreen的新活动。启动HomeScreen后,我想阻止用户按下BACK键返回登录或注册屏幕,我也希望他们能够在HomeScreen中的片段之间导航,例如,他们可以导航到分享,沟通等片段。

我想在backKey上使用finish()方法,但是这会退出一个应用程序而我也不想这样做。

3 个答案:

答案 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 */
}
相关问题