How to filter out everything but a single frequency in the time domain? I'm new to signal processing and would like some insights about the best way to filter simple data without being too computationally intensive.

I have an audio signal and I want to extract a single frequency (21khz) from it.
This frequency represents whether something is on or off.
I figured a simple amplitude threshold would do the trick to guess the on or off state but I can't think of a good way to single it out so I can threshold it.  

I thought about doing it in the frequency domain but using the FFT seems a bit overkill.

I'm sorry if this is obvious but I'm not familiar with signal processing.
Depending on the exact characteristics of the signal and implementation requirements (if any) I can think of a number of approaches to extract content at a "single" frequency. The most common:


Apply an FFT to calculate the spectrum of the signal and extract the frequency of interest.
Apply Goertzel's algorithm to effectively extract signal content at a single spectral line.
Apply a bandpass filter around the frequency of interest.
Apply an inverted notch filter around the frequency of interest.


Depending on the amplitude and frequency content of the signal, the additional noise present and other implementation requirements (e.g. should the signal be processed in real time or offline, should the implementation be digital or analog, etc.) a specific approach might be preferred.