2010-06-22 2 views
0

J'ai une activité principale simple avec 3 boutons, et un service d'arrière-plan qui s'exécute lorsque la connexion Wifi est détectée. Mon activité principale interroge la base de données sur onCreate et affiche le statut. Ce que je veux, c'est forcer une activité à redessiner ce textview toutes les quelques secondes. Je ne veux pas utiliser de classeurs ou me connecter au service. Juste un moyen simple de demander à la base de données toutes les quelques secondes pour un statut.Façon simple de mettre à jour une interface utilisateur d'activité dans Android

Voici mon code.

mdbHelper.open(); 
Cursor cursor = mdbHelper.fetchAllArticles(); 
first = cursor.getCount(); 
cursor = mdbHelper.fetchAllFeeds(); 
second = cursor.getCount(); 
cursor.close(); 
mdbHelper.close(); 

myTextView.setText(first + " in articles and " + second + " in feeds."); 

Je ne peux pas sembler mettre à jour myTextView de toute autre méthode, sauf dans onCreate ...

Merci!

Répondre

2

Vous pouvez faire quelque chose comme. Mais la bonne façon de le faire est de demander au service d'informer votre activité quand il doit interroger la base de données. Pas bon d'interroger la base de données toutes les quelques secondes quand il n'en a pas besoin.

+0

Merci beaucoup. Exactement ce que je voulais. J'ai ajouté t.stop(); à onPause() et t.start() à onResume(). Est-ce suffisant pour s'assurer que le thread ne fonctionne pas alors que l'activité n'est pas au point? – Levara

+0

C'est comme ça que vous pourriez le faire, mais vous ne devriez pas le faire de cette façon, et vous ne pouvez pas redémarrer les threads. Lisez cette autre question d'aujourd'hui qui est une meilleure solution pour résoudre votre problème. http://stackoverflow.com/questions/3095207/how-to-restart-a-thread-in-android –

+0

Merci encore. Tu as raison, c'est vraiment une mauvaise solution ...: P Je vais essayer avec une Intention ... la liaison est encore un peu hors de ma ligue. – Levara

Questions connexes