Ich muss eine Hilfsmethode schreiben, die ich an verschiedenen Stellen in der App verwenden kann, um es für N Millisekunden "schlafen zu lassen". Es sieht so aus als wäre Handler.postAtTime eine Möglichkeit, aber ich möchte alle Code-Snippets, falls verfügbar.Android 2.2: Wie können Sie eine Hilfsmethode schreiben, um Ihre App für N Millisekunden "schlafen zu lassen"?
Antwort
Sind Sie auf der Suche nach so etwas?
try {
//Put the thread to sleep for the desired amount of time (milliseconds)
Thread.currentThread().sleep(1000);
}
catch(InterruptedException ie){
}
Dadurch wird der Thread, den Sie aufrufen, für die angegebene Zeit in den Ruhezustand versetzt.
Ich würde vor dieser Methode warnen. Das Android-Framework rät dringend davon ab, den UI-Thread jederzeit zu sperren, was im Wesentlichen dem entspricht, was Ihr Code tut. – Eddie
+1 Eddie. Ja, man sollte niemals den Haupt-UI-Thread "schlafen"(). Das ist eine extrem schlechte Übung. –
Auf der positiven Seite funktioniert das. Auf der Minus-Seite klingt es wie 'es gibt einen besseren Weg, lass es mich wissen. – charlest
Sie haben nicht gesagt, warum Sie Ihre App "schlafen" müssen.
Angenommen, Sie brauchen eine Aufgabe nach einiger Zeit laufen:
Handler h = new Handler();
h.postDelayed(new Runnable() {
public void run() {
// do something here
}
}, 1000); // 1000 ms delay
Der Grund, warum ich dies tun muss, ist, dass ich eine Nachricht auf dem Bildschirm anzeigen lassen möchte, sie für 60 Sekunden anzeigen lassen und dann eine andere Nachricht anzeigen soll. Während der 60 Sekunden, die ich darauf warten muss, gibt es nichts Besonderes. Daher scheint AsyncTask nicht zu funktionieren. – charlest
Schlafe (60000) in der asynctask? –
Erstellen Sie nicht jedes Mal einen neuen Handler, wenn Sie eine Nachricht posten, aber abgesehen davon ist dies der gewünschte Ansatz. – adamp
Wenn Sie etwas dagegen, den Faden nicht zu blockieren, eine Alternative zu Thread.sleep() ist SystemClock.sleep().
Der Vorteil ist, dass es ein Einzeiler ist, da es die InterruptedException ignoriert, so dass Sie nicht damit umgehen müssen.
Weitere Informationen auf http://developer.android.com/reference/android/os/SystemClock.html.
Wie bereits erwähnt, sollten Sie fordern diese auf der Haupt UI-Thread vermeiden, wie es Ihre App nicht mehr reagiert verursacht zu werden und möglicherweise den gefürchteten Dialog zeigen alles, was wir hassen (warten oder in der Nähe bitte erzwingen.) Zu sehen
- 1. Wie schlafen für wenige Millisekunden in Swift 2.2?
- 2. Was ist der ScalaJS-Weg, um ein Ereignis in n Millisekunden Zeit auftreten zu lassen?
- 3. Wie schreiben Sie Ihre Paketdokumentation?
- 4. Können Sie eine setup.exe in qt erstellen, um Ihre App auf einem Client-Computer zu installieren
- 5. Wie können Sie eine Verpackung reagieren lassen?
- 6. Schreiben der Galaxie Registerkarte Anwendung für Android-Plattform 2.2
- 7. Ein Android-Handy zwingen zu schlafen, um es zu testen?
- 8. android, gibt es eine Methode, um Service zu verzögern oder zu schlafen?
- 9. So leiten Sie Ihre Schaltfläche "Zur App" um, um Benutzer auf Ihre Website zu leiten
- 10. Wie kann man eine Android App unbegrenzt laufen lassen?
- 11. Wie man das Schlafen in Android verhindert
- 12. Gibt es eine Möglichkeit, eine Textdatei zu schreiben und sie durch die vorherige ersetzen zu lassen?
- 13. Verwenden Sie Ihre eigene API, um Ihre Website zu erstellen
- 14. Wie kann ich N Millisekunden auf eine Datetime in Python
- 15. Können Sie min. API-Level für Ihre Android-App in Eclipse?
- 16. Wie eine JavaScript-Funktion schreiben, die gegebene Millisekunden
- 17. Verwenden Sie Google Drive, um Android-App-Daten zu speichern
- 18. Wie erhalten Sie Zeit in Millisekunden in Android Shell?
- 19. Wie schreiben Sie Ihre eigene View Engine für ASP.NET MVC?
- 20. Wettbewerb für iPhone App-Käufer -> Wie können sie beweisen, dass sie die App gekauft haben?
- 21. Android C2DM schlafen Telefon
- 22. Wie schreiben Sie Ihre eigenen benutzerdefinierten Messumformer
- 23. Eine 1: n-Beziehung schreiben
- 24. Wie können Sie Android 2.2 Emulator Display verschiedene Sprache Schriftart wie Hindi/Marathi machen?
- 25. Eine Testsuite für eine Spree-App schreiben
- 26. Wie Sie Ihre Website unter Linux gleich aussehen lassen
- 27. möglich für Perl, um Escape-Codes zu drucken und Echo nicht zu lassen -n ""
- 28. Wie ändern Sie Ihre Rails App-Daten?
- 29. wie benutzerdefinierte stackview für Android 2.2 oder 2.3 zu erstellen
- 30. zu stoppen, um eine Nummer hinzuzufügen, wenn sie ihre Grenze
Ist es der Hauptthread der Anwendung, die für N Millisekunden in den Ruhezustand versetzt werden muss? Was meinst du damit, App zum Schlafen zu machen? –
Sie sollten die App nicht in den Ruhezustand versetzen, insbesondere nicht in den Hauptthread der Benutzeroberfläche. Dies wirkt sich auf die Benutzeroberfläche aus und führt möglicherweise dazu, dass Ihre App träge aussieht. –
Ich bin mit Suresh - wir brauchen mehr Informationen, um zu helfen. Das Verzögern der Operation X für Y ms wäre einfach, würde aber andere ui-Operationen und Hintergrundprozesse normal fortsetzen lassen. Alternativ können Sie schauen, ob Sie alle N ms überprüfen oder überprüfen, was auch machbar ist. Wir müssen nur mehr wissen. Wie ich unten zu Spencer sagte, sollten Sie Ihren Manin-Thread nicht schlafen legen, da dies die Android-Benutzeroberfläche im Wesentlichen einfrieren und Benutzer irritieren und möglicherweise FC-Warnungen verursachen wird. – Eddie