Używam klasy android.os.Handler do wykonywania zadań w tle. Kiedy testuję je, wywołuję Looper.loop()
, aby wątek testowy czekał, aż wątek zadania w tle wykona swoje zadanie. Później nazywam Looper.myLooper().quit()
(również w wątku testowym), aby umożliwić wątkowi testowemu wyjście z loop
i wznowienie logiki testowania.Jak lepiej testować urządzenie Looper i kod obsługi w systemie Android?
Wszystko w porządku i dandysa, póki nie chcę napisać więcej niż jednej metody testowej.
Problem polega na tym, że Looper nie jest zaprojektowany, aby umożliwić przerwanie i ponowne uruchomienie w tym samym wątku, więc jestem zmuszony wykonać wszystkie moje testy w ramach jednej metody testowej.
Zajrzałem do kodu źródłowego programu Looper i nie mogłem go obejść.
Czy istnieje inny sposób sprawdzenia mojego kodu Hander/Looper? A może jakiś bardziej przyjazny dla testu sposób napisania mojej podstawowej klasy zadań?
Czy możesz dodać do tego przykładowy kod? Mam zasadniczo to samo pytanie, z wyjątkiem tego, że nie dotarłem tak daleko jak ty. –