Зрелое, полнофункциональное и полнофункциональное Android-приложение переводится (состояние = функция времени) в соответствии с ответом @Felix.
Но что, если вы просто хотите создать приложение, которое даже не имеет GUI.И вы хотите самый простой жизненный цикл, тогда у меня есть ответ ниже.
Этот ответ, вероятно, вы найдете интересным.Система Android после прочтения AndroidManifest.xml знает, какая точка входа.Независимо от того, какое действие имеет это
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
, будет отправной точкой или точкой входа в систему для запуска системы.После этого процесс вашего приложения получил память, где он может начать сам.
Создание вашего основного процесса - задача системы Android.Когда компонент приложения запускается, и у приложения нет никаких других работающих компонентов, система Android запускает новый процесс Linux.После того, как процесс вызывает onCreate () , он создает основной поток. Именно поэтому вы должны вызвать onCreate () , потому что основной поток затем инициализируетсяи основной поток является триггером для всех ваших будущих действий.
В onCreate () вы получили ваш основной поток.После этого все зависит от вас, какие обратные вызовы вы хотите вызвать.Нет правила, которое вы должны вызывать onStart () после onCreate ().
Только один метод жизненного цикла onCreate () гарантированно вернет жизненный цикл вашего компонента.
И, кроме того, чтобы понять, что каждыйМетод жизненного цикла делает внутри него, поместите код ниже.
//add the log line
Log.i(this.getClass().getCanonicalName(), "##############");
int count = 0;
for (StackTraceElement stackTraceElement: Thread.currentThread().getStackTrace()) {
count++;
Log.i(this.getClass().getCanonicalName(), "\""+Thread.currentThread().getStackTrace()[2].getMethodName()+"\" "+count+" "+stackTraceElement.getMethodName());
}; //end of log line
Поэтому всегда добавляйте приведенный выше код для просмотра журналов в консоли log cat.
Когда ваше приложение запускает графический интерфейс, оно вызывает onStart ().Если вы не вызываете метод super () внутри обратного вызова, система Android показывает ошибку прерванного канала и не может выполнять дальнейшую обработку и отладку.
Но вы можете реализовать свою собственную логику внутри каждого метода обратного вызова.Например, вы можете выполнить суммирование двух чисел в onStart ().
Итак, все методы обратного вызова Android являются частично реализованными методами. Они не являются чисто абстрактными методами, потому что вы должны вызывать метод super () внутри них .
Прикрепленное изображение говорит: Главный процесс приложения вызывает onCreate (), он делегирует свои обязанности основному потоку (потоку пользовательского интерфейса), а основной поток вызывает эти 16 других обратных вызовов.
Далее, если вы хотите увидеть все ваши методы в определенное время, поместите этот код ниже.
//to see all the methods (including super methods) at this time, you call use the java reflection as below
Log.i(this.getClass().getCanonicalName(), "##############");
int count1 = 0;
for (Method method: this.getClass().getMethods()) {
count1++;
count++;
Log.i(this.getClass().getCanonicalName(), count1+" "+method);
}; //end of log line
//At another time, after you add some other methods or android using GC removes some methods, you see your changed state (Bundle Snapshot) of your class
//Because your bundle (i.e, the state of your class/activity) is the function of time.
В моем сценарии из приведенного выше фрагмента кода я вижу, что он вызвал 375 методов.
Примечание. Если бы вы добавили другой метод в onCreate () до того, как распечатали все свои методы, используя чуть выше фрагмент кода, вы бы также увидели этот метод.Это означает, что ваше состояние класса (т. Е. Снимок) соответствует вам, то, что вы делаете раз за разом, вы продолжаете обновлять свой снимок.