Как исходный код Android не может иметь основной метод и все еще работать? - PullRequest
18 голосов
/ 19 ноября 2010

Я видел это в нескольких уроках сейчас ... но как в мире исходный код Android может не иметь основного метода и все еще работать.

Например (из http://developer.android.com/guide/tutorials/hello-world.html):

public class HelloAndroid extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

Это работает, но нет основного !!!

Я также подумал, что использование таких вещей, как onCreate (или formLoad и т. Д.), Было плохо, потому что конструктор должен делать эту работу и тому подобноеиногда встроенные методы могут быть вонючими, но onCreate - это точка входа? Даже без основного?

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

Спасибо!

Ответы [ 13 ]

0 голосов
/ 11 октября 2012

В Java есть главный, даже если он не указан как main().Страница, которую вы получите после щелчка по значку, независимо от его имени, будет main().

0 голосов
/ 26 сентября 2012

Я думаю, что ответ Джонатона идет в правильном направлении.Он говорит, что ОС ожидает определенную структуру.Есть название для этой структуры, которая является «конечным автоматом».В этом случае Android называет это «жизненным циклом активности».Роб дает ссылку на документацию, которая содержит важную диаграмму этого конечного автомата, хотя текст немного сухой.Быстрый поиск также нашел мне следующую ссылку, которая объясняет это довольно четко: http://www.android -app-market.com / android-activity-lifecycle.html

0 голосов
/ 19 ноября 2010

Кадр пользовательского интерфейса Android инкапсулирует некоторые общие детали Java, вы можете изучить исходный код структуры Android-интерфейса

...