2010-02-09 10 views
42

C'è qualche evento/ricevitore o qualcosa per la gestione della prima esecuzione dopo l'installazione o direttamente dopo l'installazione? O ho bisogno di emulare con le preferenze?C'è un evento di installazione in Android?

+0

Sto scrivendo un servizio. Non ha una GUI. Come posso programmare il servizio per l'esecuzione giornaliera? (Sembra che non possa, perché sembra che non possa eseguire codice direttamente dopo l'esecuzione.) Sarà installato solo manualmente, quindi potrebbe essere usato adb, ma questo sembra non necessario. – user2768

risposta

47

C'è l'intento di trasmissione ACTION_PACKAGE_ADDED, ma l'applicazione che si sta installando non lo riceve.

Quindi controllare se una preferenza è impostata è probabilmente la soluzione più semplice.

SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(this); 
boolean firstRun = p.getBoolean(PREFERENCE_FIRST_RUN, true); 
p.edit().putBoolean(PREFERENCE_FIRST_RUN, false).commit(); 
+0

Grazie Un sacco! Stavo cercando questo intento, ho un servizio che deve avere una conoscenza aggiornata dei pacchetti installati ogni secondo, con questo intento posso memorizzarlo finché non si verifica un cambiamento. –

1

Non penso che ci sia una cosa del genere, e non penso che sarebbe una buona idea: di solito devi gestire non solo le installazioni ma alcuni aggiornamenti (ad esempio: una nuova versione con funzionalità) o il corretta inizializzazione di alcune risorse.

Per le risorse, il modo migliore è verificarle direttamente.

Per la versione, utilizzo il database, è così facile.

+0

Ho dato motivazione (ovvero, una ragione per cui questa sarebbe una buona idea) sopra: http://stackoverflow.com/questions/2227604/is-there-on-install-event-in-android#comment55110087_2227604 – user2768

1

Il metodo OnUpgrade di SQLiteOpenHelper viene chiamato quando la versione del database è stata modificata. Suppongo che questo potrebbe essere usato per fare altro che gestire il nuovo schema.

+6

Ci scusiamo per la necropostazione, ma credo che ci sia solo la cosa giusta da fare lì: gestire il nuovo schema. Fare riferimento al Principio di Responsabilità individuale di SOLID e al senso comune. Solo nel caso qualcuno lo vedrà. –

+0

Questo verrà chiamato ogni volta che la versione del database cambia, quindi non è un buon posto per farlo. – dramzy

Problemi correlati