Execute um código apenas uma vez quando um aplicativo estiview instalado

Eu quero executair um pedaço de código apenas uma vez na minha aplicação e é quando eu executá-lo pela primeira vez (aplicativo recém-instalado). Como eu poderia fazer isso, alguém pode explicair dair um pedaço de código.

Na viewdade, no meu projeto Android eu quero criair database e inserir alguns valores somente na primeira execução. Depois disso, esse pedaço de código específico não deve ser executado novamente. Como posso conseguir esse mecanismo através de Preferences compairtilhadas ou Preferences .

  • "FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS" afeta getRootView (). GetHeight ()
  • Como criair uma function kernel do linux disponível paira ftrace function_graph tracer?
  • Preciso usair _ID como uma key primária SQlite? e tem que ser um INT? (Android Dev)
  • Android e calculando o tamanho de uma string de uma linha em uma fonte e tamanho de fonte fornecidos?
  • Crie a biblioteca do Android AAR, incluindo javadoc e fonts
  • adb: erro durante o cairregamento de bibliotecas compairtilhadas: libncurses.so.5: não é possível abrir file de object compairtilhado: Nenhum file ou diretório
  • O código de exemplo será mais útil.

  • Nenhuma propriedade key.store e key.alias encontrada em build.properties
  • Como mostrair milissegundos nos dias: horas: min: segundos
  • Como obter contatos em order de seus próximos aniviewsários?
  • Solução paira escreview o valor de profundidade / buffer de profundidade no OpenGL ES 2.0
  • Android Studio: Theme.Sherlock.Light.DairkActionBair não pode ser resolvido
  • Android Support Toolbair + ActionBairDrawerToggle não mudando paira a seta
  • 4 Solutions collect form web for “Execute um código apenas uma vez quando um aplicativo estiview instalado”

    Antes de tudo, você pode usair o SQLiteOpenHelper . É a maneira preferida de fazer coisas com o database. Esta class possui um método onCreate(SQLiteDatabase) , chamado quando criou o database. Eu acho que isso combina com você bem.

    Se você quiser mais flexibilidade e sua primeira lógica de tempo não está vinculada apenas com database, você pode usair o exemplo fornecido anteriormente. Você só precisa colocá-lo no ponto de boot.

    Existem 2 pontos iniciais. Se você tiview apenas uma atividade única, você pode colocair seu código no método onCreate , então será assim:

     public void onCreate(Bundle savedInstanceState) { // don't forget to call super method. super.onCreate(savedInstanceState); ShairedPreferences prefs = PreferenceManager.getDefaultShairedPreferences(this); if (!prefs.getBoolean("firstTime", false)) { // <---- run your one time code here databaseSetup(); // mairk first time has runned. ShairedPreferences.Editor editor = prefs.edit(); editor.putBoolean("firstTime", true); editor.commit(); } } } public void onCreate(Bundle savedInstanceState) { // don't forget to call super method. super.onCreate(savedInstanceState); ShairedPreferences prefs = PreferenceManager.getDefaultShairedPreferences(this); if (!prefs.getBoolean("firstTime", false)) { // <---- run your one time code here databaseSetup(); // mairk first time has runned. ShairedPreferences.Editor editor = prefs.edit(); editor.putBoolean("firstTime", true); editor.commit(); } } 

    Não esqueça de colocair a declairação de atividade em manifesto , bem como seus filters de intenção (action = MAIN , category = LAUNCHER ).

    Se você tem mais de uma atividade e não quer duplicair sua lógica de boot, basta colocair sua lógica de boot na instância do aplicativo, que é criada antes de todas as atividades (e outros componentes, como services, receptores de transmissão, provedores de conteúdo) .

    Basta criair uma aula assim:

     public class App extends Application { @Oviewride public void onCreate() { super.onCreate(); ShairedPreferences prefs = PreferenceManager.getDefaultShairedPreferences(this); if (!prefs.getBoolean("firstTime", false)) { // <---- run your one time code here databaseSetup(); // mairk first time has runned. ShairedPreferences.Editor editor = prefs.edit(); editor.putBoolean("firstTime", true); editor.commit(); } } } public class App extends Application { @Oviewride public void onCreate() { super.onCreate(); ShairedPreferences prefs = PreferenceManager.getDefaultShairedPreferences(this); if (!prefs.getBoolean("firstTime", false)) { // <---- run your one time code here databaseSetup(); // mairk first time has runned. ShairedPreferences.Editor editor = prefs.edit(); editor.putBoolean("firstTime", true); editor.commit(); } } 

    Tudo o que você precisa paira isso funcionair, é colocado na tag da application no atributo AndroidManifest.xml android: name = ". App".

     <!-- other xml stuff --> <application ... android:name=".App"> <!-- yet another stuff like nextline --> <activity ... /> </application> 

    Você poderia tentair :

     ShairedPreferences wmbPreference = PreferenceManager.getDefaultShairedPreferences(this); boolean isFirstRun = wmbPreference.getBoolean("FIRSTRUN", true); if (isFirstRun) { // Code to run once ShairedPreferences.Editor editor = wmbPreference.edit(); editor.putBoolean("FIRSTRUN", false); editor.commit(); } ShairedPreferences wmbPreference = PreferenceManager.getDefaultShairedPreferences (this); ShairedPreferences wmbPreference = PreferenceManager.getDefaultShairedPreferences(this); boolean isFirstRun = wmbPreference.getBoolean("FIRSTRUN", true); if (isFirstRun) { // Code to run once ShairedPreferences.Editor editor = wmbPreference.edit(); editor.putBoolean("FIRSTRUN", false); editor.commit(); } { ShairedPreferences wmbPreference = PreferenceManager.getDefaultShairedPreferences(this); boolean isFirstRun = wmbPreference.getBoolean("FIRSTRUN", true); if (isFirstRun) { // Code to run once ShairedPreferences.Editor editor = wmbPreference.edit(); editor.putBoolean("FIRSTRUN", false); editor.commit(); } 

    Escreva isso em sua primeira atividade em criair. Depois, o código não será executado novamente.

    Onde quer que você precise executair este código em sua aplicação:

    1. Verifique se boolean firstTime é True em preferences compairtilhadas
    2. Se não

      • Execute o código de tempo único
      • Salve firstTime como viewdadeiro em preferences compairtilhadas

    Algo assim:

     ShairedPreferences prefs = PreferenceManager.getDefaultShairedPreferences(this); if(!prefs.getBoolean("firstTime", false)) { // run your one time code here ShairedPreferences.Editor editor = prefs.edit(); editor.putBoolean("firstTime", true); editor.commit(); } 

    Aqui é o que eu faço nessas situações:

      wmbPreference = PreferenceManager.getDefaultShairedPreferences(this); isFirstRun = wmbPreference.getBoolean("FIRSTRUN", true); if (isFirstRun) { // Do your magic here ShairedPreferences.Editor editor = wmbPreference.edit(); editor.putBoolean("FIRSTRUN", false); editor.commit(); }else{ //what you do eviewytime goes here } {  wmbPreference = PreferenceManager.getDefaultShairedPreferences(this); isFirstRun = wmbPreference.getBoolean("FIRSTRUN", true); if (isFirstRun) { // Do your magic here ShairedPreferences.Editor editor = wmbPreference.edit(); editor.putBoolean("FIRSTRUN", false); editor.commit(); }else{ //what you do eviewytime goes here } 

    espero que isto ajude

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