Android坏导航
我得到一个奇怪的导航行为,我不知道为什么会发生,也不知道如何修复它 我刚刚在Android Studio 2.1中创建了一个新项目,并从活动库中添加了一个Android坏导航,android,android-intent,android-activity,login,Android,Android Intent,Android Activity,Login,我得到一个奇怪的导航行为,我不知道为什么会发生,也不知道如何修复它 我刚刚在Android Studio 2.1中创建了一个新项目,并从活动库中添加了一个登录活动和一个主/细节流活动 我在attemptLogin()中添加了以下代码到LoginActivity: Intent intent = new Intent(this, ItemListActivity.class); startActivity(intent); 这样,应用程序将在登录活动中打开,当我单击登录按钮时,它将跳转到主/详细
登录活动
和一个主/细节流活动
我在attemptLogin()
中添加了以下代码到LoginActivity
:
Intent intent = new Intent(this, ItemListActivity.class);
startActivity(intent);
这样,应用程序将在登录活动中打开,当我单击登录按钮时,它将跳转到主/详细流程活动中。到目前为止,一切正常。但是,当我单击主/详细流程活动工具栏上的返回按钮时,应用程序关闭,它不会像预期的那样返回到登录活动
Master/Detail Flow活动
按预期工作,但如果我单击某个项目,将打开一个新的活动
,其中包含该项目的详细信息,其返回按钮按预期工作,使应用程序返回到列表活动
我在登录活动
或主/详细流程活动
中找不到任何会改变后台堆栈的代码,我甚至添加了第二个登录活动
,使应用程序运行:
登录活动1
->登录活动2
->主/明细流程活动
它现在在登录活动1
和登录活动2
之间正常工作,但当我尝试从主/详细流程活动
返回时,而不是返回到登录活动2
,它关闭了应用程序…我在主/细节流活动中也找不到任何会改变后台堆栈的代码。我的AndroidManifest
也应该如此(它是由androidstudio自动生成的,我没有做任何更改)
我甚至试着做一个:
登录活动1
->登录活动2
->主/明细流程活动1
->主/明细流程活动2
在登录活动2->主/明细流活动1
之间仍然存在错误,但在主/明细流活动1->主/明细流活动2
和登录活动1->登录活动2
之间,它的工作原理与预期一致……因此,同样没有任何线索,这变得非常奇怪,因为此测试显示它不在新的活动的登录活动
调用中,也不在主/细节流活动
接收中,而是仅在这两个特定活动
之间的接口中
这对于任何人来说都是相当容易尝试和复制的,只需创建一个新项目并创建活动,正如我所说的那样我可以做些什么返回到登录活动
?为什么会发生这种情况?
编辑:
测试的完整代码您的问题是因为在内部类UserLoginTask中,在LoginActivity类中,您正在调用onPostExecute()方法中的finish()。删除此行,您将注意到应用程序运行良好。
所以它是这样的:
@Override
protected void onPostExecute(final Boolean success) {
mAuthTask = null;
showProgress(false);
if (!success) {
mPasswordView.setError(getString(R.string.error_incorrect_password));
mPasswordView.requestFocus();
}
}
我进行了测试,测试结果与预期一致 最好的方法:首先用断点调试代码,如果没有发现任何错误,那么发布你的代码..我调试了所有代码。。。代码太大,无法发布,在Android Studio上自己创建更容易。我现在觉得很傻…我搜索了所有finish
和navigateUpFromSameTask
,我想我错过了这个!谢谢只有一件事我不明白……如果两者都已完成,为什么它会从LoginActivity2
返回到LoginActivity
?不,如果您显式完成(),则活动已完成。如果这个答案对你有效,请将其标记为正确我知道了…我可以在活动之间来回移动,因为我做得很快…不到2秒,这是后台任务延迟…因此,只要我在2秒内导航,所有工作…现在都有意义了!谢谢