I have a class that uses a Handler for a timed, asynchronous activity.
Something like this:
public class SampleClass {
private static final long DELAY = 30000;
private boolean isRunning = false;
private Handler handler = new Handler();
public start() {
if (!isRunning) {
isRunning = true;
handler.post(new Thread(task));
}
}
public stop() {
isRunning = false;
}
private Runnable task = new Runnable() {
public void run() {
if (!isRunning) {
return;
}
// Do some tasks
handler.postDelayed(new Thread(this), DELAY);
}
}
}
I am trying to write a unit test (without having to implement an
activity that instantiates the class) but I can't seem to get the
items that are posted to the MessageQueue to ever be fired. Inheriting
from junit.framework.TestCase doesn't work, but then there wouldn't be
a MessageQueue for the handler, I'd expect (although, there's no
error, but the Runnable never gets called). I tried inheriting the
test class from AndroidTestCase and ApplicationTestCase<Application>
but neither of those works, even though the former is supposed to
provide a Context and the latter "all the life cycle of an
application."
Anyone have any pointers?
--
Jeremy Wadsack
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en