【问题标题】:Finish application from parent class从父类完成申请
【发布时间】:2015-11-14 12:50:40
【问题描述】:

android finish() 方法有一些问题。 我有一个家长班活动。让我们称之为 ParentActivity。我项目中的所有其他活动都扩展了 ParentActivity。每次在 ParentActivity.onCreate 上都有一些语句,如果它失败,我想停止执行活动。但是当我在父级调用 finish() 时,我无法停止在其子级上执行 onCreate 方法。类似的东西:

public class ParentActivity extends Activity {
     @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (!someStatement) finish();
}

public class Test extends ParentActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);        
    Log.d("TAG", "I dont want this code!");
}

}

当然,我每次都可以在父活动中验证其状态,但我认为这不是一个好主意。

public class Test extends RexActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (isFinishing()) return; /// It works - but it bad :(((
    Log.d("TAG", "I dont want this code!");
}

}

我能否以某种方式停止对其父活动的子活动执行 onCreate 方法?非常感谢您的帮助!

【问题讨论】:

    标签: java android android-activity activity-finish


    【解决方案1】:

    我不确定你的问题是否正确。因为你有一些语法问题。

    1. onCreate 语句总是被执行。您可以在ParentActivity 中添加一个Boolean 来阻止代码在ChildActivity#onCreate() 中执行。
    2. 您可以尝试使您的 onCreate() 代码更加模块化,方法是将其划分为不被调用的函数。

    让我知道什么对你有用。

    【讨论】:

      【解决方案2】:

      最好的选择是在创建第二个 Activity 之前在初始屏幕中使用 finish(),

      【讨论】:

        猜你喜欢
        • 2021-02-03
        • 1970-01-01
        • 1970-01-01
        • 2015-08-04
        • 2013-02-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多