单击后退按钮时出现问题。它继续进行上一个活动。用户可以登录以使用该应用程序。但问题是当用户注销并单击后退按钮时,它将显示“登录”面板页面。如果用户想要退出应用程序,他们将不得不通过多次后退点击。这不是我想要的样子。
当然,我可以使用菜单并为用户提供退出应用程序的选项,但我不想使用这种方法,因为它不是常用的方法。这不是很好,因为通常用户会单击返回第一页并提示他们是否要退出。
如何解决意图问题?
单击后退按钮时出现问题。它继续进行上一个活动。用户可以登录以使用该应用程序。但问题是当用户注销并单击后退按钮时,它将显示“登录”面板页面。如果用户想要退出应用程序,他们将不得不通过多次后退点击。这不是我想要的样子。
当然,我可以使用菜单并为用户提供退出应用程序的选项,但我不想使用这种方法,因为它不是常用的方法。这不是很好,因为通常用户会单击返回第一页并提示他们是否要退出。
如何解决意图问题?
如果您不希望通过后台堆栈访问活动,您可以像这样修改 AndroidManifest.xml 中的条目:
<activity
android:name="com.myDomain.myApp.MyActivity"
android:label="My Activity"
android:noHistory="true" >
</activity>
如果您只是想确保前一个活动不会显示在后台堆栈中,您可以在每个调用 finish() 的活动中添加一个处理程序,然后从当前活动中调用它。
以前的活动:
public void goAway()
{
finish();
}
当前活动:
previousActivity.goAway();
当然,您需要在当前活动中引用上一个活动。
如果您想保留后退堆栈并仅在用户注销或从注销屏幕按下后退按钮时清除它,可以执行以下操作。
1:通过调用startActivityForResult(intent, REQUEST_CODE)
相同的方法启动每个活动REQUEST_CODE
2:覆盖onActivityResult()
每个Activity
并添加以下代码段,
if(resultCode == RESULT_OK && requestCode == REQUEST_CODE) {
setResult(OK);
finish();
}
3:当用户注销或从注销的屏幕按下返回键时,执行以下操作
setResult(OK);
finish();
这将确保用户注销后清除后台堆栈中的所有活动。