I would recommend not using Thread
s in order to achieve this. Why not use the Runnable
class and post it with a delay via a Handler
? For example:
Handler handler = new Handler(); // make this a member variable of your class
boolean isOn = false; // make this a member variable of your class
final Runnable flashRunnable = new Runnable() {
@Override
public void run() {
if (isOn) {
turnOff();
isOn = false;
} else {
turnOn();
isOn = true;
}
handler.postDelayed(flashRunnable, 5000);
}
};
handler.postDelayed(flashRunnable, 5000);
If you need to run the code inside the Runnable
on the UI thread, you even call postDelayed
on a View
instead of creating a Handler