2010-06-11 4 views
4

Je voudrais connaître les meilleures pratiques pour l'exécution d'un service tous les jours à 4 heures du matin.Android - Avoir un service exécuté tous les jours à 4 heures

La façon dont je pense Je devrais le faire est de créer une nouvelle alarme répétée en utilisant AlarmManager et en l'exécutant le service à 4 heures. Le problème est, je ne suis pas sûr où placer le code pour placer l'alarme. Est-ce que je le fais dans mon activité principale comme l'une des premières tâches de la méthode OnCreate? Est-ce que je fais des trucs géniaux avec BroadcastReceivers et les intentions? Que se passe-t-il lorsqu'un utilisateur met à jour mon application? Que se passe-t-il lorsqu'un utilisateur redémarre?

Toute aide avec ces questions serait très appréciée :) Exemple de code serait utile aussi bien!

Bara

Répondre

4

Vous pouvez programmer votre alarme chaque téléphone bottes de temps et chaque fois que votre application démarre. Pour écouter l'événement de démarrage du téléphone, vous pouvez utiliser BroadcastReceiver.

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 
. 
. 
. 
<receiver android:name=".BootReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 
</receiver> 

Pour un échantillon complet vous pouvez jeter un oeil à l'application Photostream http://code.google.com/p/apps-for-android. Il utilise exactement la même approche.

+0

Donc, il semble que je crée un BroadcastReceiver qui appelle simplement un service et lui dit de planifier une heure pour commencer. Cela semble assez simple. Que diriez-vous de quand mon application commence? Dois-je programmer le service dans ma première activité ou y a-t-il une intention différente que je peux appeler? – Bara

+0

Première activité réussie – Fedor

+0

Une dernière question: que se passe-t-il lorsqu'un utilisateur met à jour mon application? Ils ne vont pas nécessairement démarrer ou redémarrer leur téléphone, mais je crois que mon service est arrêté à ce moment-là. Que ferais-je à ce sujet? – Bara

Questions connexes