Sto sviluppando un'applicazione che prevede una funzione che deve operare in background anche con applicazione non avviata. In pratica vorrei andare a leggere periodicamente (1 volta ogni ora) un file xml (rss feed) remoto e notificare all'utente l'aggiunta di una nuova news.
Da quello che ho capito dalla documentazione ufficiale e dai vari forum, il modo migliore per rispondere a questa esigenza è quello di creare un Service all'interno dell'applicazione, è corretto? Se così fosse come potrei fare in modo che questo service venga avviato all'accensione del telefonino?
Qualcuno suggerisce questa procedura:
1. Creare una classe che estenda Service ed una classe che estenda BroadcastReceiver.
2. All'interno del metodo onCreate del Service inserire la parte di codice che esegue la connessione http, parsa il file xml e notifica l'aggiornamento all'utente.
3. All'interno del metodo onReceive del BroadcastReceiver verificare che la action passata nell'Intent sia di tipo ACTION_BOOT_COMPLETED ed avviare il servizio (che girerebbe quindi indefinitamente).
4. Dichiarare il service, il broadcast receiver ed una ulteriore permission, nel manifest:
Insomma, per essere più chiari vorrei realizzare una cosa simile alla notifica delle nuove email di GMail (che come noto funziona anche se GMail non è stato avviato). Le vostre impressioni?codice:<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <service android:name="MioServizio"/> <receiver android:name="MioReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver>