Jak mogę dać kilka sekund opóźnienia bez użycia funkcji wątków, które mogę wywołać w dowolnym miejscu, aby dać opóźnienie. Funkcja wbudowana Androida jest bardzo preferowana. Dziękiopóźnienie kilku sekund bez użycia wątków
8
A
Odpowiedz
18
Użyj Handler'a i wyślij do niego prostą wiadomość lub Runnable za pomocą metody takiej jak postDelayed().
Na przykład zdefiniować obiekt Handler aby otrzymywać wiadomości i Runnables:
private Handler mHandler = new Handler();
Definiowanie Runnable:
private Runnable mUpdateTimeTask = new Runnable() {
public void run() {
// Do some stuff that you want to do here
// You could do this call if you wanted it to be periodic:
mHandler.postDelayed(this, 5000);
}
};
Bo te Runnable być wysłany do obsługi po upływie określonego czasu w ms
:
mHandler.postDelayed(mUpdateTimeTask, 1000);
Jeśli nie chcesz złożoności se ning a Runnable to the Handler, możesz też po prostu wysłać do niego wiadomość - nawet pustą wiadomość, dla największej prostoty - używając metody sendEmptyMessageDelayed()
.
0
wywołać metodę opóźnione ze statycznego kontekście
public final class Config {
public static MainActivity context = null;
}
W główną działalność:
@Override
protected void onCreate(final Bundle savedInstanceState) {
...
Config.context = this;
...
}
...
public void execute_method_after_delay(final Callable<Integer> method, int millisec)
{
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
try {
method.call();
}
catch (Exception e) {
}
}
}, millisec);
}
Od dowolnej klasy za pomocą metody statyczne:
private static void a_static_method()
{
int delay = 3000;
Config.context.execute_method_after_delay(new Callable<Integer>() {
public Integer call() {
return method_to_call();
}
}, delay);
}
public static Integer method_to_call()
{
// DO SOMETHING
Powiązane problemy
- 1. GWT: mogę umieścić opóźnienie kilku sekund po pokazaniu popup
- 2. TimeSpan.TotalMinutes bez sekund
- 3. Jak mogę wykonać krótkie opóźnienie w C# bez użycia trybu uśpienia?
- 4. Opóźnienie ekranu internetowego aplikacji iPhone opóźnienie:
- 5. Czy wywołanie funkcji WSAStartup() z kilku wątków może spowodować zakleszczenie?
- 6. Opóźnienie JQuery przed fadeOut
- 7. Wątki Java: opóźnienie ExecutorService między wątkami
- 8. Uruchamianie PHP bez rozszerzenia bez użycia mod_rewrite?
- 9. nagłówek opóźnienie lokalizacja
- 10. Jak wykonać synchronizację wątków bez użycia mutex, semorphore, spinLock i futex?
- 11. Zapytanie bez użycia skryptów dynamicznych
- 12. Zapis zapytań bez użycia pętli
- 13. Obracanie kursora bez użycia WinForms
- 14. globalne stałe bez użycia #define
- 15. Running kompozytora bez użycia sudo
- 16. td układanie bez użycia css
- 17. Podprocesowe stdin bez użycia plików
- 18. Opóźnienie Zawiesina skryptu JavaScript
- 19. Opóźnienie CAKeyframeAnimation przed powtórzeniem
- 20. Opóźnienie programu Raspberry Pi
- 21. Opóźnienie tytułu SVG
- 22. Czy metody statyczne bez wątków są bezpieczne?
- 23. Zapobiegaj blokowaniu interfejsu użytkownika bez dodatkowych wątków.
- 24. Sterty zoptymalizowane do (bez ograniczenia) użycia jednowątkowego
- 25. Jquery Opóźnienie Po Kliknij
- 26. Opóźnienie Angular2 do aktualizacji
- 27. Dynamiczne przechwytywanie procesora i użycia pamięci
- 28. Opóźnienie lub Wait-For Oświadczenie
- 29. Żądanie uczenia się maszyny Azure opóźnienie odpowiedzi
- 30. Opóźnienie mouseout/hover z przejściami CSS3
dzięki! Właśnie dodałem 'new Handler(). sendEmptyMessageDelayed (1, 2500);' jednak nie wiem, co to jest wartość 'int what" – austin
Podany link nie jest już dostępny ... – amalBit
OK, usunięto link. Myślę, że odpowiedź jest całkiem samodzielna, ponieważ wciąż jest. – Trevor