Java&Android: onCreate вместо main

253
26 ноября 2016, 19:23

Вопрос, возникающий при переходе от изучения основы Java к программированию под Android.

Известно, что минимальная Java-программа должна содержать метод main (String[] args):

public class Example
{
  public static void main (String[] args){
  }
}

И говорилось, что этот метод должен включать с себя любая Java-программа. Приложение под андроид же должно содержать в себе метод onCreate:

protected void onCreate(Bundle savedInstanceState){

По идее, если Java-программа требует метода с именем main и параметром String[] args, то программа, состоящая из одного только метода onCreate(Bundle savedInstanceState), должна быть непремлемой с точки зрения Java. Чем это объяснить?

Answer 1

Даже в самой Java это не всегда верно. Сервлеты и Аплеты не имеют main метода.

Android использует язык Java, но рантайм отличается от обычной Java. Тут, вероятно, стоит сказать, что в Android то не обычный JVM, там Dalvik Virtual Machine, который ищет класс унаследованный от Activity, и который задан как LAUNCHER при старте в манифесте. Поэтому сравнение со стандартной JVM не совсем корректно.

Answer 2

Вообще то у андрода тоже есть метод main в ActivityThread. Но до него не добраться так просто

READ ALSO
Ориентация экрана в Android

Ориентация экрана в Android

Можно ли как то запретить смену ориентации в приложении на устройствах с экранами меньше 7 дюймов?

270
Перенос строки в strings.xml

Перенос строки в strings.xml

Как сделать в stringsxml перенос строки?

334
SendBroadcastPermission

SendBroadcastPermission

ЗдравствуйтеНаписал для своего приложения сервис, который постоянно обменивается данными с BroadcastReciever и во время того, как он отправляет...

497
Нет доступа к Context внутри Fragment

Нет доступа к Context внутри Fragment

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

297