If you organize your code correctly it can check the status of the input in every iteration of loop() without needing to stop doing anything else and without needing to use interrupts. If you need to measure the width of a pulse there is a pulseIn() function.
Interrupts are a very effective and simple way to detect pulses if you know how to program and debug interrupts. If you don't they can be a nightmare. You can't use Serial.print() within interrupt service routines (ISR) for debugging.
Keep the code in your ISR very short - 2 or 3 lines of code.
...R