【问题标题】:Do I need to explicitly finish an Activity in Android?我是否需要在 Android 中明确完成一个活动?
【发布时间】:2012-07-04 17:04:31
【问题描述】:

当我开始一个新的活动时,我需要明确地完成当前活动还是 android 会处理这个?

这是我在活动 A 中为启动活动 B 所写的内容:

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

我应该在上述两行之后调用下一行来结束 A 吗?

this.finish()

【问题讨论】:

  • 如果一个 Activity 已经完成并且用户不太可能返回它,你应该调用 finish() 来释放这个 Activity 使用的资源。更少的内存浪​​费意味着更好的应用。

标签: android android-activity activity-finish


【解决方案1】:

一般来说,你不应该这样做。

不同之处在于,如果您在活动 A 中调用完成,当用户在活动 B 中时,如果他们按下后退按钮,他们将返回到他们在打开应用程序之前所做的任何事情。如果您不在活动 A 中调用完成,他们将返回活动 A

如果您调用完成:

Activity A -> Activity B -> [user press back] -> Homescreen (or whatever activity is on the stack below activity A)

如果您不要调用完成:

Activity A -> Activity B -> [user press back] -> Activity A

【讨论】:

    【解决方案2】:

    不,这不是强制性的。

    finish()
    

    finish 方法状态 “当您的活动完成并应该关闭时调用此方法。ActivityResult 会传播回通过 onActivityResult() 启动您的人。”

    参考链接>>link

    【讨论】:

      【解决方案3】:
       explicitly finish the current activity or does android take care this ?
      

      这取决于您的要求,如果您想要活动 A 同时从活动 B 中返回,因此您不需要调用完成,但如果您在返回活动 B 时不想要活动 A,那么您应该调用完成... .

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-09-04
        • 1970-01-01
        • 1970-01-01
        • 2011-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多