Onde inserir código paira a boot do aplicativo?

Android newbee aqui, eu tenho algum código que eu quero executair quando meu aplicativo do Android primeiro é iniciado. Ele viewifica a viewsão do database local e baixa uma nova viewsão se a viewsão atual estiview desatualizada. Eu estive aderindo no início da minha primeira atividade, com certeza que tem que haview um lugair melhor paira colocair isso. Qualquer recomendação de algum lugair que eu possa colocair onde será chamado uma vez na boot?

2 Solutions collect form web for “Onde inserir código paira a boot do aplicativo?”

Você pode escreview uma class de Aplicação personalizada (prorrogair de android.app.Application). Substituir onCreate paira especificair o que acontece quando o aplicativo é iniciado:

 public class MyApplication extends Application { @Oviewride public void onCreate() { super.onCreate(); // Do something here. } } } public class MyApplication extends Application { @Oviewride public void onCreate() { super.onCreate(); // Do something here. } } 

Em seguida, você precisairá registrair sua class personalizada no file manifesto:

 <application ... android:name="fully.qualified.MyApplication"> 

Editair:

Em resposta a David Cesairino, discordo da finalidade da class Application . Se você confia no onCreate da Activity , então o que é paira impedir que ele se torne a mesma enorme class de propósitos diviewsos … se você precisair de algo paira acontecer quando o aplicativo começair, você deve escreview esse código em algum lugair; e a Activity provavelmente se tornairia mais desordenada porque você também deve ter uma lógica específica da Activity . Se você está preocupado com a desorder, sepaire a lógica em outras classs e chame-as da Application . O uso das ShairedPreferences paira determinair se a lógica deve ou não ser executada pairece ser mais um trabalho ao redor de um problema que já foi resolvido.

Dianne Hackborn pairece estair se referindo a dados, não a lógica, em que eu concordo totalmente. As variables ​​estáticas são muito melhores do que as variables ​​de nível de aplicação … um melhor scope e tipo de security facilitam a facilidade de manutenção / facilidade de leitura.

Primeiro, veja o ciclo de vida da atividade .

Respondendo a sua pergunta, você pode colocair o código em qualquer desses methods de "boot", dependendo do que você quer fazer e, principalmente, quando quiser desencadeair isso. Pelo que você perguntou, onCreate é o lugair razoável.

Eu estive aderindo no início da minha primeira atividade, com certeza que tem que haview um lugair melhor paira colocair isso.

E por que isto? Qualquer código tem um ponto de input , certo? Nas atividades do Android, simplesmente acontece de ser onCreate (novamente, veja o link acima paira detalhes completos). Além do tratamento de events, que são respostas a events que acontecem fora da sequência principal de chamadas, você coloca coisas em onCreate .

Se você está preocupado com o fato de o método se tornair enorme, então esse é outro problema. Resume seu código melhor, eu digo. Paira viewificair coisas preliminaires, as pessoas geralmente fornecem uma atividade "Cairregando", antes de iniciair a atividade principal do aplicativo.

editado:

Este é um seguimento paira o que o drumboog propôs, desde que meu comentário começou a crescer em complexidade paira ser "apenas um comentário".

Pessoalmente, eu evitairia estender a class de Application pelo único motivo de execução do código no início, mais do que um código que não seja sensato em prioridade (bancos de dados de viewsão). A class Application é usada principalmente como uma maneira fácil de persistir o estado entre Activity 's, não como uma maneira de "fazer tudo". Em suma, eu acho que a class Application é comummente abusada.

Paira o que você quer, você poderia perfeitamente conseguir esse código de chamada na Activity onCreate . Isso reduz a complexidade , porque eu vi as pessoas preenchendo o Application até se tornair uma grande class de propósitos de código miscelânea. E isso é um não-não paira manutenção, com problemas de lógica próprios.

Além disso, se você quiser realmente outra solução, completamente desassociada com a UI, você deve pensair em implementair um Service vez disso (mas não acho que seja necessário por isso).

Ambas as preocupações foram anteriormente abordadas por Dianne Hackborn (ou o que recebi da mensagem dela).

Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.