2010-06-24 4 views
1

Y a-t-il un événement qui est déclenché lorsqu'un widget devient visible sur l'écran d'accueil. Je ne voulais pas dire au moment de l'installation, je veux dire si l'utilisateur change son écran d'accueil en essuyant la surface du téléphone. L'arrière-plan de cette question est que je configure une minuterie dans un service à l'intérieur du widget qui reçoit des mises à jour à partir d'une URL, mais qui devrait s'arrêter si le widget n'est pas sur l'écran d'accueil actuel.Mise à jour du widget lorsque l'utilisateur passe à l'écran d'accueil

Freudi

Répondre

3

Il existe un moyen de le faire, vous pouvez écouter la diffusion Intent.ACTION_USER_PRESENT et mettre à jour votre widget à la réception de l'intention.

Il sera déclenché lorsque l'utilisateur déverrouille l'écran d'accueil.

Je l'utilise dans mon application et fonctionne très bien pour mettre à jour vos widgets lors du déverrouillage.

0

Non, désolé. Il existe des douzaines d'applications d'écran d'accueil, dont certaines n'ont même pas le concept «d'essuyer la surface du téléphone». Un écran d'accueil est simplement une activité avec un <intent-filter> particulier.

+0

C'est étrange. J'ai mis le Yahoo-Currency Widget sur un écran d'accueil différent. Si je efface de mon écran d'accueil par défaut à cet écran, ce widget commence à mettre à jour ses données actuelles. Donc, d'une manière ou d'une autre, il sait qu'il est visible maintenant. –

+0

Comment savez-vous que c'est seulement sur le coup qu'il "commence à mettre à jour ses données de devise"? – CommonsWare

+0

Je ne le savais pas. Je le vois juste. Quelle est votre estimation? –

0

Je ne sais pas si cela aide, mais je suis tombé sur ce ..

WallpaperManager.setWallpaperOffsets() et WallpaperService.onOffsetChanged()

Peut-être que vous pourriez utiliser? Définir les décalages de fond d'écran et utiliser onOffsetChanged() pour obtenir les offsets actuels?