So schließen Sie ein Dialogfeld, nachdem einige Sekunden der Inaktivität?
habe ich eine app, die enthält ein Dialogfeld, in
möchte ich schließen Sie diesen dialog nach x zweite, wenn der Benutzer noch nicht alle interagieren mit der app, wie Lautstärke seekbar-popup(das ist offen, wenn die Lautstärke-Taste geklickt wird, und geschlossen wird, nachdem 2 Sekunden der Inaktivität).
was ist die einfachste Möglichkeit dies umzusetzen?
danke
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte man zum Beispiel mit einem Handler und rufen Sie seine .removeCallbacks() und .postDelayed () - Methode jedesmal, wenn der Benutzer interagiert mit dem dialog.
Auf eine Interaktion, die .removeCallbacks () - Methode bricht die Ausführung .postDelayed(), und direkt nach, dass u starten Sie einen neuen Thread mit .postDelayed()
In diesem Thread, könnte man das Dialogfenster zu schließen.
Für die Verfolgung von Benutzer-Interaktion, die Sie verwenden könnten:
Welche in Ihrer Aktivität.
Ich mag, dies zu tun mit AsyncTask:
Dann lösen Sie es von Ihrer Aktivität auf klicken Sie auf:
Wenn Sie eine bessere Präzision können Sie auch System.nanoTime()
Ich bin auch neu bei android, aber ich empfehlen, ein timer, und wenn sagen wir der timer t ist größer als oder gleich 2 ist, dann tun Sie etwas. Es würde Aussehen, der Art wie diese
Dies funktioniert möglicherweise nicht für Ihre Zwecke, aber es ist einfach etwas, das erfordert vielleicht weniger code-Zeilen am Ende. (wie ich immer sage, weniger code mehr code) weiß ich, dass die Timer sind im Grunde einfach zu machen, aber ich habe noch nie verwendet man in eine app. Würde ich nicht konkret wissen, wie die timer, aber ich bin sicher, du findest ein tutorial auf youtube.
Dies ist die Frage, die kam, als ich sah Dinge in Bezug auf das timing. Ich habe implementiert eine Antwort, die verwendet
AsyncTask
,Handler
, undRunnable
. Ich reiche meine Antwort hier als eine potentielle Vorlage für die spätere Antwort Suchenden.Denen etwas mit
AsyncTask
müssen Sie einenDownloadTask object
- und call -.execute()
.Beispiel:
Ich eigentlich auch nahm dieser code weiter als das, was Sie sehen durch alle meine
doInBackground()
- code über eine Funktion, so hatte ich eigentlich zu rufenonProgressUpdate()
- und andere Funktionen, die mit derDownloadTask
Objekt.