Завершить приложение из родительского класса

Возникли проблемы с методами 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 для дочерней активности от его родителя? Большое спасибо за любую помощь!


person Константин Мельников    schedule 14.11.2015    source источник


Ответы (2)


Я не уверен, правильно ли я понял ваш вопрос. Так как у вас проблемы с грамматикой.

  1. Операторы onCreate выполняются всегда. Вы можете либо иметь Boolean в ParentActivity, чтобы остановить выполнение кода в ChildActivity#onCreate().
  2. Вы можете попробовать сделать свой код onCreate() более модульным, разделив его на функции, чтобы он не вызывался.

Дайте мне знать, что работает для вас.

person Akshay Chordiya    schedule 14.11.2015

Лучший вариант - использовать finish() на заставке непосредственно перед созданием второго действия,

person Androider    schedule 14.11.2015