Android Broken Navigation

时间:2016-05-05 00:03:02

标签: android android-intent android-activity login

我得到一个奇怪的导航行为,我不知道为什么它不会发生如何解决它。

我刚在Android Studio 2.1中创建了一个新项目,并在活动库中添加了Login ActivityMaster/Detail Flow Activity

我在attemptLogin()内添加了以下代码到LoginActivity

Intent intent = new Intent(this, ItemListActivity.class);
startActivity(intent);

这样,应用会在Login Activity中打开,当我点击Sign In按钮时,它会跳转到Master/Detail Flow Activity ....到目前为止,非常好......但是,当我点击Master/Detail Flow Activity工具栏上的返回主页按钮时,应用会关闭,它不会按预期返回Login Activity

Master/Detail Flow Activity按预期工作,如果我点击某个项目,则会打开一个新的Activity并显示该项的详细信息,并且它的后退按钮按预期工作,该应用返回List Activity

我无法在Login ActivityMaster/Detail Flow Activity中找到任何会改变后台筹码的代码,我甚至添加了第二个Login Activity,让应用程序继续:< / p>

Login Activity 1 - &gt; Login Activity 2 - &gt; Master/Detail Flow Activity

现在Login Activity 1Login Activity 2之间按预期工作,但当我尝试从Master/Detail Flow Activity返回时,它会关闭应用,而不是返回Login Activity 2。 ..而且我无法在Master/Detail Flow Activity中找到任何会改变后台堆栈的代码。我的AndroidManifest也应该是它(它是由Android Studio自动生成的,我没有改变任何东西)。

我甚至试图做一个:

Login Activity 1 - &gt; Login Activity 2 - &gt; Master/Detail Flow Activity 1 - &gt; Master/Detail Flow Activity 2

错误仍然存​​在于Login Activity 2 -> Master/Detail Flow Activity 1之间......但它在Master/Detail Flow Activity 1 -> Master/Detail Flow Activity 2Login Activity 1 -> Login Activity 2之间按预期工作...所以再次,没有线索,这变得非常奇怪,由于此测试表明它不在Login Activity调用新Activity,而且在Master/Detail Flow Activity接收中都没有,但仅在这两个特定{{1}之间的接口中}。

任何人都可以轻松地尝试重现,只需创建一个新项目并按照我的说法创建Activities如何回到Activities?为什么会这样?

编辑:

测试here

的完整代码

1 个答案:

答案 0 :(得分: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();
          }
      }

我测试过并且按预期工作了!