Есть ли функция в Android, аналогичной «int main» в C/C ++, которая содержит основной цикл программы?
-
11-09-2019 - |
Вопрос
Обычно в программе C или C ++ есть основная петля/функция, обычно int main ()
. Анкет Есть ли подобная функция, которую я могу использовать в разработке Android Java?
Решение
Что касается программы Android, нет Main (). Существует цикл пользовательского интерфейса, который запускает ОС, которая делает вызовы в методах, которые вы определяете или переопределяете в своей программе. Эти методы, вероятно, вызываются из/определены в Oncreate (), OnStart (), OnResume (), OnRestart (), OnPause (), OnStop () или OnDestroy (). Все эти методы могут быть отменены в вашей программе.
Основная проблема заключается в том, что ОС предназначена для работы в среде с ограниченной ресурсом. Ваша программа должна быть готова к остановке и даже полностью остановленной всякий раз, когда ОС требует больше памяти (это многозадачная ОС). Чтобы справиться с тем, что ваша программа должна иметь некоторые из всех функций, перечисленных выше.
Жизненный цикл деятельности описывает это лучше всего (ваша программа - это одно или несколько действий, подумайте о деятельности как на экране):
http://developer.android.com/reference/android/app/activity.html#activitylifecycle
Итог: ваша программа «начинается» в Oncreate () через OnResume (), но ОС запускает цикл. Ваша программа предоставляет обратные вызовы ОС для обработки того, что отправляет ОС. Если вы поместите длинный цикл в любой момент своей программы, он будет замерзнуть, потому что ОС (в частности, поток пользовательского интерфейса) не может получить кусочек времени. Используйте ветку для длинных петлей.
Другие советы
В среде Android нет Main (). ОС опирается на манифестный файл, чтобы узнать точку входа, в большинстве случаев, в вашем приложении.
Вы должны прочитать http://developer.android.com/guide/topics/fundamentals.html Для более подробной информации.
Согласно с:http://developer.android.com/guide/tutorials/hello-world.html
Класс приложений должен поддерживать метод для каждого действия, которое поддерживает приложение. В общем случае Oncreate, вероятно, эквивалентен основной/верхней функции для ваших потребностей.
Может быть, это возможно, создав таймер и выполнить пользовательские функции на каждом тике, сбросьте таймер, когда он в определенное время