У меня есть 2 мероприятия - MainActivity и page1. У меня есть намерение от первого, как это:onCreate называется дважды
button_forward.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Intent intent = new Intent(MainActivity.this, Page1.class);
startActivity(intent);
return true ;
}
Однако OnCreate моего стр.1 класса вызывается дважды! я могу обнаружить его с тостами сообщением: он дважды появляется на экране:
@Override
protected void onCreate(Bundle savedInstanceState) {
Toast.makeText(Page1.this, "onCreate 1", Toast.LENGTH_SHORT).show();
super.onCreate(savedInstanceState);
setContentView(R.layout.page1);
//some code here like findview by id...
}
});`
У меня есть некоторые методы, которые используют countdowntimer в моей деятельности Page1, таймеры, которые ждут в течение 2 секунд, я заметил их, но OnCreate () все еще вызывается дважды.
Я добавил код, чтобы предотвратить экран вращающуюся, но ошибка сохраняется
Я думаю, что проблема заключается в тостах сообщения berore onCreate ... поэтому, когда запуск второго действия начнется, он подтолкнет сообщение .. но после этого вы вызываете super.onCreate() .. Так что это может быть возможная причина что onCreate будет вызывать дважды .. \ – Moinkhan
@Moinkhan, но super.onCreate нужно вызывать в каждом методе правильно? это правило всегда вызывать метод суперкласса - super.onDestroy() и т. д. – ERJAN
Да, право .. но это хорошая практика, чтобы написать super() в первом заявлении ... Использование супер в качестве первого оператора allow onCreate(), чтобы сделать это поведение по умолчанию .. затем тост сообщения .. – Moinkhan