In an update of Android OS Google introduced the smart auto wireless performance checking.
Effectively android checks the speed of the wireless connection to the Internet if its not stable or quick enough this thr connection is deemed unsuitable for use and then disconnects you or will leave you on the mobile network provider.
This can be a problem in web cafes and hotel wireless where they block the ability to check, force signup or the speed is just to slow. This also slows the wireless negotiation process down and can be rather frustrating all round..
Resolution: disable the smart network switch under wireless settings
Android – settings cog – wifi – and untick smart network switch