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

标签 android android-intent android-activity superclass activity-finish

考虑以下场景:
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/

相关文章:

Android Lollipop - 绕过弹出 Activity 的锁屏

android - 如何获取 Battery Historian 在 csv 中计算的错误报告数据

android map 叠加绘制

机器人:首选项

Android:pathpattern 用于拦截浏览器的文件下载 Intent

php - Android 从 PHP 传递和接收参数

android - Android中无法启动Activity组件信息和Java空指针异常

android - 使用后删除 Intent

android - 从服务调用 Activity onCallStateChange

android - 如何通过adb工具使用Android上的应用程序?