Подтвердить что ты не робот

OnCreate not called

У меня есть 2 вида деятельности: первый пользователь активности нажимает кнопку, запускающую 2-ю операцию. Вторая работа выполняет всю работу.

Я запускаю вторую активность следующим образом, которая находится внутри внутреннего класса onClickListener, и я попытался явно называть его (FirstActivity.this, Simple.Class), но то же самое происходит.

    Intent test = new Intent(arg0.getContext(),Simple.class);
    startActivity(test);

В эмуляторе я вижу, что экран перемещается, как его вызов 2-го действия, но все, что я получаю, это черный экран, но ничего не загружено из моего макета. Я посмотрел на logcat, и я вижу сообщения об ошибках с переплетными сообщениями. Это функция onCreate из моей второй активности, но я не получаю никаких результатов ни на экране, ни на логарифме, показывающем, что вызывались функции Log:

    public void onCreate(Bundle savedState)
    {
       Log.d("SimpleActivity","OnCreate Started");

       super.onCreate(savedState);
   setContentView(R.layout.simple);

       Log.d("SimpleActivity","OnCreate Ended");
    }

Примечание. Я вызвал базовый конструктор в OnCreate() с super.onCreate(сохраненнымСтатом) в моем коде выше.

4b9b3361

Ответ 1

Что со мной произошло, я переопределял неправильный метод onCreate. Я переопределял public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState), когда мне действительно нужно было переопределить protected void onCreate(@Nullable Bundle savedInstanceState). Может быть, это может помочь кому-то!

Ответ 2

Возможно, что onCreate не вызван, если активность никогда не была уничтожена, если по какой-то причине активность висит вокруг, в следующий раз ее экземпляр не воссоздается, а возобновляется...

По крайней мере, то, что im Dealing прямо сейчас в моем коде... Жизненный цикл деятельности кажется хорошим логическим объяснением.. Однако 99% времени я полагаюсь на onCreate, вызываемый при запускеActivity, и это не подводит меня....

Изменить: И, конечно, это потому, что я не вызывал finish() при выходе из этой активности. Doh.

Ответ 3

Это не связано с этой определенной проблемой, но также это может произойти, когда активность не объявлена ​​в файле манифеста)

Ответ 4

вам следует @Override onCreate и добавить super.onCreate() в него

@Override
public void onCreate(Bundle savedState)
{
   super.onCreate(savedState);

   Log.d("SimpleActivity","OnCreate Started");
   setContentView(R.layout.simple);
   Log.d("SimpleActivity","OnCreate Ended");
}

Ответ 5

Вам нужно вызвать метод super.onCreate(savedState). Посмотрите Activity doc.

 public void onCreate(Bundle savedState)
    {
     super.onCreate(savedState);
    }

Ответ 6

Будьте осторожны, если ваш метод принадлежит AppCompatActivity или Activity.

Это зависит от того, что вы реализовали в своем классе

Если вы хотите добавить жизненный цикл или любые методы переопределения, я рекомендую вам нажать CTRL+O или сделать Code > Override methods и там вы можете увидеть, где этот метод принадлежит

Screenshot for illustrative purposes - Android Studio's "Methods to Override" dialog

Ответ 7

удалить android: launchMode = "singleTask" из манифеста