onCreate не вызывается - PullRequest
       1

onCreate не вызывается

54 голосов
/ 15 декабря 2011

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

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

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

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

    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 (saveState) в моем коде выше.

Ответы [ 7 ]

213 голосов
/ 02 июля 2016

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

4 голосов
/ 04 сентября 2012

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

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

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

1 голос
/ 01 марта 2016

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

0 голосов
/ 17 апреля 2019

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

0 голосов
/ 04 сентября 2017

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

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

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

Screenshot for illustrative purposes - Android Studio's

0 голосов
/ 15 декабря 2011

Вам необходимо вызвать метод super.onCreate(savedState).Взгляните на Activity doc .

 public void onCreate(Bundle savedState)
    {
     super.onCreate(savedState);
    }
0 голосов
/ 15 декабря 2011

Вы должны @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");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...