gpt4 book ai didi

android - 完成其父类(super class)的子类 Activity

转载 作者:行者123 更新时间:2023-11-29 14:53:03 29 4
gpt4 key购买 nike

考虑以下场景:
TemplateActivity 类扩展了 Activity。在 onResume() 中,它执行一个 bool 变量的验证,然后,如果为假,它完成方法和 Activity ,并启动一个新的 Activity ,OtherActivity

当扩展 TemplateActivity 的类 ChildActivity 运行时,它会等待 super.onResume() 完成,然后继续执行它的 super 是否需要启动 Intent

问题:
OtherActivity 需要从TemplateActivity 启动时,有没有办法终止ChildActivity?没有在子类中实现有效性检查。

父类(super class):

class TemplateActivity extends Activity {
@Override
protected void onResume() {
super.onResume();

if(!initialized)
{
startActivity(new Intent(this, OtherActivity.class));
finish();
return;
}

//Do stuff
}
}

子类:

class ChildActivity extends TemplateActivity {
@Override
protected void onResume() {
super.onResume();

//Do stuff
}
}

最佳答案

更优雅的解决方案是类设计的方法略有不同:

  1. TemplateActivity 中引入一个方法 DoStuff() (替换为合理的名称)。在那里做所有的//do stuff 位。
  2. TemplateActivity OnResume 的末尾调用此方法
  3. 在子 Activity 中覆盖它以使用子 Activity //do stuff 位扩展它。
  4. 不要覆盖 ChildActivity 中的 onResume

这样,如果条件在 TemplateActivity OnResume 中触发,父子 DoStuff 都不会完成。 ChildActivity不必知道关于此行为的任何

关于android - 完成其父类(super class)的子类 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12696149/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com