well i can only talk for the sticky fly catches foil,
1. fly catches are excellent, but only good if all the knats land on them which they dont, there is always a few that dont, it only takes one knat to re populate your whole room which doesn't take long at all.
2. sand its ok, the thicker the amount of sand you put on top the better. only problem is when you water it can revel the soil which makes it useless.
3. foil is the other option if you dont like the sand idea. if you make sure there is no holes for knats to get throw ect, also good coz it reflects a little bit of light up at your plant