2011-10-11 2 views
1

Je suis capable de mettre à jour la base de données sqlite et de récupérer les données via un fil de mon activité. Mais j'ai besoin de mettre à jour la base de données en utilisant le service, qui mettra à jour la base de données toutes les 5 minutes, que mon application soit en cours d'exécution ou non. Donc, quand je lance l'application, j'obtiendrai des données de la base de données actuelle. Je suis coincé en écrivant Service pour mettre à jour la base de données. Peut-être un guide.Comment utiliser le service pour mettre à jour la base de données sqlite dans android

Répondre

2

Création d'un objet de la minuterie sur votre classe de service Timer timer=new Timer();
Sur le créer

@Override 
public void onCreate() 
{ 
    super.onCreate(); 
    timer.schedule(new DelayedTask(),300, 300000);// 300000 is 5min 

} 

Classe DelayedTask

private class DelayedTask extends TimerTask 
{ 

    @Override 
    public void run() { 
     Log.i(tag,"Timer Task executing"); 

     // code for updating sqlite database 


    } 

} 
+0

'ScheduledExecutorService' est généralement préféré à' TimerTask' et cela ne résout pas le problème qu'Android peut arrêter un service à tout moment. Si cela se produit, les tâches planifiées ne s'exécuteront pas. – spatulamania

+0

Le code ci-dessus fonctionne très bien, j'ai testé. – Sandy

+0

Merci beaucoup Sandy. Ça marche pour moi. – Naba

0

Cette question est très générale. Pour voir comment utiliser un service, regardez au this.

Si vous souhaitez que votre service soit réveillé toutes les cinq minutes, vous devez utiliser le AlarmManager.

Si vous avez une question spécifique en cours de route, publiez-la.

+0

Mon service continue à consommer plus de mémoire. À un moment donné, il a atteint presque 30 Mo. Le service est finalement fermé par l'ActivityManager et l'instruction émise est la suivante: Forcer l'arrêt du service ServiceRecord Pourquoi le service consomme tellement de mémoire, mais l'application a fonctionné en seulement 100 Ko ou plus. – Naba

Questions connexes