扩展另一个 Activity 的 Activity 是否有 2 个独立的父类和子类(Activities)Android 上下文?

问题描述 投票:0回答:1

我有一个模板 Activity 类

open class AbstractActivity : AppCompatActivity(){
  onCreate()
  ...
}

我将在我的项目中的几乎每个 Activity 中使用这个模板 AbstractActivity

我的活动为:

class MyActivity : AbstractActivity(){


}

在调试时,我了解到两者都有 2 个独立的上下文,而不是一个。

当我在 AbstractActivity 中的 onActivityResult 中调用 finish() 时,我仅关闭抽象活动,而不关闭 MyActivity

根据我的理解,根据 OOPS finish() 调用此处必须关闭扩展 AbstractActivity 的整个 MyActivity,但为什么只有 AbstractActivity 已完成。

P.S:我正在从 AbstractActivity 的 onActivityResult 方法调用 finish()

android kotlin oop android-activity onactivityresult
1个回答
0
投票

当您在

AbstractActivity
中的
finish()
内调用 onActivityResult() 时,它应该完成 AbstractActivity 本身的实例。但是,它不会直接影响继承自它的 MyActivity 实例。如果您看到 AbstractActivity 已完成,但 MyActivity 仍在运行,这是预期的行为,因为两个活动都有不同的生命周期。

finish()
方法用于完成当前的Activity实例,这意味着它将从Activity堆栈中删除该Activity并销毁它。由于您在 AbstractActivity 中调用
finish()
,它将完成
AbstractActivity
的特定实例,如果 MyActivity 仍在前台,则它会继续运行。

如果你想完成 MyActivity 那么你也必须在此 Activity 中显式调用

finish()

© www.soinside.com 2019 - 2024. All rights reserved.