我有一个模板 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()
当您在
AbstractActivity中的
finish()
内调用 onActivityResult()
时,它应该完成 AbstractActivity 本身的实例。但是,它不会直接影响继承自它的 MyActivity 实例。如果您看到 AbstractActivity 已完成,但 MyActivity 仍在运行,这是预期的行为,因为两个活动都有不同的生命周期。
finish()
方法用于完成当前的Activity实例,这意味着它将从Activity堆栈中删除该Activity并销毁它。由于您在 AbstractActivity 中调用 finish()
,它将完成 AbstractActivity
的特定实例,如果 MyActivity 仍在前台,则它会继续运行。
如果你想完成 MyActivity 那么你也必须在此 Activity 中显式调用
finish()
。