Le premier point est la fonction d'écran de verrouillage. Vous pouvez vous référer à : https://github.com/chniccs/Lo... Ce petit projet est l'implémentation de la fonction d'écran de verrouillage, avec un petit montant. de code.
Un autre point est de voir comment vous définissez chaque opération. Ici, afficher une activité au premier plan sera considéré comme une opération. Vous pouvez également réécrire l'écouteur tactile pour définir certaines opérations tactiles comme une opération. 1. Écrivez une BaseActivity, envoyez un message retardé (diffusion ou autre gestionnaire) dans onResume (ceci est utilisé ici pour représenter une opération) et enregistrez l'heure actuelle (stockée dans une application personnalisée ou un singleton global ou un stockage de persistance ) 2. Selon la méthode précédente d'envoi de messages retardés, telle que la diffusion, après avoir reçu le message diffusé, comparez la valeur temporelle actuelle avec la valeur temporelle enregistrée à l'étape 1, si elle est inférieure à la valeur temporelle définie, puis la différence entre les deux valeurs de temps (stockées et actuelles) est reprise comme délai puis une diffusion est envoyée. Lorsque la diffusion sera reçue la prochaine fois, elle sera à nouveau jugée. Si elle est supérieure ou égale à la valeur temporelle, l'écran de verrouillage sera appelé.
Explication : à l'étape 2, pourquoi devez-vous prendre la différence au lieu de renvoyer une diffusion à délai fixe ? En effet, après avoir envoyé la diffusion pour la première fois, vous pouvez effectuer certaines opérations, et ces opérations le feront ? être suivi plus tard. C'est-à-dire que lorsque vous recevez une diffusion différée, l'heure de la dernière opération n'est pas l'heure enregistrée lors de l'envoi de la diffusion, mais l'heure de la dernière opération réelle. Par conséquent, la valeur temporelle enregistrée doit être mise à jour après chaque opération.
Calcul de la différence : temps maximum fixe défini sans opération - (heure actuelle - heure de la dernière opération)
Le premier point est la fonction d'écran de verrouillage. Vous pouvez vous référer à : https://github.com/chniccs/Lo...
Ce petit projet est l'implémentation de la fonction d'écran de verrouillage, avec un petit montant. de code.
Un autre point est de voir comment vous définissez chaque opération. Ici, afficher une activité au premier plan sera considéré comme une opération. Vous pouvez également réécrire l'écouteur tactile pour définir certaines opérations tactiles comme une opération.
1. Écrivez une BaseActivity, envoyez un message retardé (diffusion ou autre gestionnaire) dans onResume (ceci est utilisé ici pour représenter une opération) et enregistrez l'heure actuelle (stockée dans une application personnalisée ou un singleton global ou un stockage de persistance )
2. Selon la méthode précédente d'envoi de messages retardés, telle que la diffusion, après avoir reçu le message diffusé, comparez la valeur temporelle actuelle avec la valeur temporelle enregistrée à l'étape 1, si elle est inférieure à la valeur temporelle définie, puis la différence entre les deux valeurs de temps (stockées et actuelles) est reprise comme délai puis une diffusion est envoyée. Lorsque la diffusion sera reçue la prochaine fois, elle sera à nouveau jugée. Si elle est supérieure ou égale à la valeur temporelle, l'écran de verrouillage sera appelé.
Explication : à l'étape 2, pourquoi devez-vous prendre la différence au lieu de renvoyer une diffusion à délai fixe ? En effet, après avoir envoyé la diffusion pour la première fois, vous pouvez effectuer certaines opérations, et ces opérations le feront ? être suivi plus tard. C'est-à-dire que lorsque vous recevez une diffusion différée, l'heure de la dernière opération n'est pas l'heure enregistrée lors de l'envoi de la diffusion, mais l'heure de la dernière opération réelle. Par conséquent, la valeur temporelle enregistrée doit être mise à jour après chaque opération.
Calcul de la différence : temps maximum fixe défini sans opération - (heure actuelle - heure de la dernière opération)
Adopter la méthode postDelayed(Runnable, long) de Handler
.1 Définir une classe Handler
2. Démarrer la minuterie
3. Arrêtez le chronomètre
C'est probablement la voie à suivre, vous décidez à votre rythme