Existe uma função no Android análogo a "int main" em C/C ++, que contém o loop principal do programa?
-
11-09-2019 - |
Pergunta
Normalmente em um programa C ou C ++, há um loop/função principal, geralmente int main ()
. Existe uma função semelhante que eu possa usar no desenvolvimento do Android Java?
Solução
No que diz respeito a um programa Android, não há principal (). Há um loop de interface do usuário que o sistema operacional executa que faz chamadas para métodos que você define ou substitui em seu programa. Esses métodos provavelmente são chamados de/definidos em OnCreate (), OnStart (), OnResume (), Onrestart (), OnPause (), Onstop () ou OnDestroy (). Todos esses métodos podem ser substituídos em seu programa.
A questão fundamental é que o sistema operacional foi projetado para ser executado em um ambiente restrito a recursos. Seu programa precisa estar preparado para ser interrompido e até completamente interrompido sempre que o sistema operacional precisa de mais memória (este é um sistema operacional multitarefa). Para lidar com isso, seu programa precisa ter algumas das funções listadas acima.
O ciclo de vida da atividade descreve esse melhor (seu programa é uma ou mais atividades, pense em uma atividade como uma tela):
http://developer.android.com/reference/android/app/activity.html#activitylifecycle
Conclusão: o seu programa 'inicia' em OnCreate () através do OnResume (), mas o sistema operacional está executando o loop. Seu programa fornece retornos de chamada para o sistema operacional para lidar com o que o sistema operacional enviar para ele. Se você colocar um loop longo a qualquer momento do seu programa, ele parecerá congelar porque o sistema operacional (especificamente o thread da interface do usuário) não pode obter uma fatia de tempo. Use um thread para loops longos.
Outras dicas
No ambiente Android, não há principal (). O sistema operacional conta com o arquivo de manifesto para descobrir o ponto de entrada, uma atividade na maioria dos casos, no seu aplicativo.
Você deve ler http://developer.android.com/guide/topics/fundamentals.html Para mais detalhes.
De acordo com:http://developer.android.com/guide/tutorials/hello-world.html
A classe de aplicativo deve suportar um método para cada atividade suportada pelo aplicativo. No caso geral, o OnCreate provavelmente é equivalente à função principal/superior para suas necessidades.
Talvez seja possível criar um cronômetro e executar funções personalizadas a cada tick, redefinir o timer quando estiver em um horário específico