后退事件将发送到上一个活动

时间:2013-01-10 09:52:30

标签: android android-activity back

我有2项活动如下:

public class MainActivity extends Activity {
    ....


    profile.login(new onCallback()) {
        @Override
        public void onResult(int result) {
            final Intent i = new Intent(MainActivity.this, DetailActivity.class);
            startActivity(i);
        }
    }

    ....

}


public class DetailActivity extends Activity {
    ....
}

当profile.login在AsyncTask上运行并且在有结果时回调。 收到结果后,它将开始第二项活动。

以下是麻烦步骤:

  1. 在MainActivity上,按下登录按钮。
  2. 按BACK关闭应用程序。
  3. 该应用程序已关闭,但过了一会儿,第二个活动会弹出,然后立即关闭一个力量。
  4. 我跟踪生命周期事件,logcat显示:

    1. MainActivity.onClickLogin
    2. DetailActivity.onCreate已开始。
    3. DetailActivity.onCreate结束。
    4. MainActivity.onDestroy已启动。
    5. MainActivity.onDestroy结束。
    6. 这是非常依赖于时间的,只发生在" DetailActivity.onCreate结束"并且未显示屏幕。显示DetailActivity屏幕后,按Back不会导致MainActivity破坏。它只是按预期破坏了DetailActivity:

      1. MainActivity.onClickLogin
      2. DetailActivity.onCreate已开始。
      3. DetailActivity.onCreate结束。
      4. DetailActivity.onDestroy已启动。
      5. DetailActivity.onDestroy结束。
      6. 我的问题是:

        由于已经创建了DetailActivity(onCreated结束),后退键事件是否应该发送给DetailActivity并导致它被破坏?为什么密钥被发送到MainActivity?

        知道如何反制这个吗?

        我正在处理的Android版本是4.0.x

1 个答案:

答案 0 :(得分:0)

创建页眉和页脚。设置一个图像并在onclick监听器上编写代码......