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(сохраненнымСтатом) в моем коде выше.
Ответы
Ответ 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" из манифеста