2010-11-23 4 views
1

Je dois appeler le service Web depuis Windows Mobile à intervalle régulier. Est-ce que Timer (System.Windows.Forms.Timer) est le bon contrôle pour cela? Est-ce que cela consomme plus de puissance de la batterie? Y a-t-il des alternatives?Windows Mobile - Utilisation du contrôle Timer

Répondre

2

Si votre appareil doit être sous tension alors que le temporisateur est en cours d'exécution, vous pouvez utiliser le contrôle Timer. Si toutefois, il n'y a aucune action de l'utilisateur pendant un certain temps, l'appareil va se mettre en veille et la minuterie ne se déclenchera pas. Afin d'économiser la batterie, il est judicieux de laisser l'appareil passer en état de veille. Regardez le LargeIntervalTimer dans OpenNetCF. Cela réveillera l'appareil de l'état de veille.

+0

Mon application va écouter de nombreux événements tels que SMS, Appels, Fichiers, GPS, Contact, Calendrier etc constamment. Je ne peux pas dire quand il n'y a pas d'action de l'utilisateur. Mais, mon application doit écouter chaque activité en permanence. que suggérez-vous? J'utilise actuellement le contrôle Timer avec un intervalle de 60 minutes. Mon application écoutera constamment les événements mais je n'ai besoin d'appeler le serveur qu'une fois en 60 minutes. Donc, mon minuteur sera appelé une fois en 60 minutes. –

+2

Je vous recommande d'utiliser LargeIntervalTimer. Cela garantit que la minuterie se déclenchera, même si l'application est passée en mode veille. – kgiannakakis

+0

Oui, LargeIntervalTimer semble prometteur. Je vais l'essayer et vous le faire savoir. –

0

Vous P/Invoke la fonction native CeSetUserNotificationEx avec le champ dwType de la structure CE_NOTIFICATION_TRIGGER définie sur CNT_TIME et l'ensemble du champ stStartTime pour le moment à l'avenir quand vous voulez appeler le service Web. Lancez une application à chaque fois et laissez-la mourir après l'appel, ou ayez une application toujours active en arrière-plan en attendant qu'un événement nommé soit défini par le sous-système de notification.

Questions connexes