Je construisie une application de planification, je stocke toutes les notifications planifiées dans une table DB de chambre, je veux vérifier chaque seconde si l'heure / la date actuelle est égale à la table / date de la table DB, et il devrait afficher une notification pour ça. p>
Comment puis-je faire cela? P>
3 Réponses :
Jetez un coup d'œil à cette question ici: Répétez une tâche avec une heure Délai? Regardez un coup d'œil au code>
postdelayed code>. Obtenez la valeur de la base de données que vous souhaitez vérifier, puis utilisez un postdelayed pour vérifier s'il correspond à UP P>
Pouvez-vous m'aider s'il vous plaît du code de conception parce que je ne l'obtiens pas et que je suis détourné vers Workmanager et je suis toujours confus.
J'ai soumis une réponse différente maintenant, jetez un coup d'œil à ce @harbdollar
Je pense que vous devriez utiliser un autre modèle de conception pour la mettre en œuvre au lieu de "vérifier chaque seconde", mais voici un petit extrait de fonctionnement:
@Query("SELECT id FROM T_SCHEDULER WHERE date = :currentdate") LiveData<Integer> getScheduledItemId(long currentdate);
Vais-je mettre en œuvre cela dans un bouton ou quoi ?, Parce que je pense que le code devrait être à l'intérieur d'un service ou d'un arrière-plan?
Essayez de le mettre dans un gestionnaire comme celui-ci: Handler Handler = nouveau gestionnaire (); int retard = 1000; // Milliseconds Handler.PostDelayed (Nouveau Runnable () {Public Void Run () {// Action DB ici handler.posdelayed (this, délai);}}, retard); code>
Essayez quelque chose comme ça
Handler handler = new Handler(); int delay = 1000; //milliseconds handler.postDelayed(new Runnable() { public void run() { //DB action here //Todo, here you would put in your DB logic to check if the stuff matches handler.postDelayed(this, delay); } }, delay);
Je suis vraiment occupé avec autre chose, je viens de le mettre en œuvre hier et cela fonctionne, mais cela fonctionne parfois lorsque je minimise l'application et fermez également toute l'application. Que puis-je faire pour y parvenir? Et aussi comment puis-je la mettre en pause et la laisser continuer quand elle a effectué quelque chose.
Vous devriez chercher à créer un service pour quelque chose comme ça @harbdollar
Oui, je sais sur le service, cela signifie que je dois l'ajouter à l'intérieur d'un service,
Avez-vous envisagé d'utiliser Livadata?
Livetaa ne va pas aider pour cela
Bonjour, s'il vous plaît envisagez de faire preuve de ma réponse, j'essaie de me débarrasser de toutes mes réponses nominales zéro: D