在我的应用中,我希望在用户登录后阻止他们返回到登录页面,但是我又不想关闭应用程序。例如,如果前一个活动是登录页面,在用户按下返回键时不希望发生任何事情,只需停留在当前活动/片段。
在我的应用中,我希望在用户登录后阻止他们返回到登录页面,但是我又不想关闭应用程序。例如,如果前一个活动是登录页面,在用户按下返回键时不希望发生任何事情,只需停留在当前活动/片段。
finish();
,并在下一个活动中添加onBackPressed
。 @Override
public void onBackPressed() {
}
正确的做法是在登录活动完成并启动下一个活动时,在登录活动中调用finish()
。例如:
Intent intent = new Intent(LoginActivity.this, NextActivity.class);
startActivity(intent);
finish();
这将防止用户从NextActivity
返回到LoginActivity
,因为调用finish()
会销毁LoginActivity
并将其从后退堆栈中删除。
没有必要从NextActivity
中删除onBackPressed
,这可能会产生意想不到的后果(例如,如果他们从Login -> Next -> Other -> Next
导航,然后单击返回,他们希望返回到Other
)。在Next
中禁用onBackPressed
将防止这种情况发生。
onBackPressed
(可能会使用户感到困惑)。一种选择是从登录到下一个界面中通过意图传递一些数据,以指示是否禁用返回按钮。 - Tyler Vandroid:noHistory="true"
。<activity android:name=".LoginActivity" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
只需删除 super.onBackPressed:
@Override
public void onBackPressed() {
//super.onBackPressed();
. . .
}
它只会在用户点击返回按钮时进行检测,而不会关闭应用程序。