【问题标题】:On calling finish() before startActivity method, Activity transition takes place在 startActivity 方法之前调用 finish() 时,会发生 Activity 转换
【发布时间】:2017-04-14 22:02:49
【问题描述】:

在我的 android 应用程序中,我犯了在完成()之后调用 startActivity 方法的错误,但我仍然能够移动到下一个活动。我想知道这是怎么发生的,不应该在 startActivity 执行之前销毁活动 这是一个示例代码

    Intent N=new Intent(A.this,B.class);
    finish();
    startActivity(N);

我可以毫无问题地移动到 Activity B,并且 Activity A 也被破坏了

【问题讨论】:

标签: android android-activity


【解决方案1】:

这取决于你从哪里调用finish()

onCreate() 中的

finish() 将调用 onDestroy()

finish() in onStart() 会调用 onCreate(), onStart(), onStop(), onDestroy()

finish() in onResume() 会调用 onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()

你可以看看Android生命周期:

https://developer.android.com/guide/components/activities/activity-lifecycle.html

【讨论】:

    【解决方案2】:

    我不相信finish() 与返回具有相同的效果(否则我们会得到unreachable statement 错误),因此仍会调用流程的其余部分。

    More info.

    【讨论】:

      猜你喜欢
      • 2011-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-16
      • 1970-01-01
      • 2011-04-24
      • 1970-01-01
      相关资源
      最近更新 更多