How to turn off data usage for all but specific App in android? I want to disable the auto sync(i.e mobile data) for all of my App ,except whatsApp when I am in mobile data connection.So basically talking , when I am on mobile data I only want to use whatsApp to connect to internet.

But when I am connected to wifi , any of App can update,sync and do things whatever they want. How can I do that ?

EDIT: MY PHONE IS NOT ROOTED
There are a number of applications (3G Watchdog for example) which allow you to restrict background data to WiFi; therefore when you've left the application it cannot continually use data. 

In later versions of Android you can go to Settings > Data Usage > Apps and restrict background data, thus not needing a third party app. Both methods do not require root access. 
Here are a few related questions:MMS and Restricting background data, Restrict Mobile data but exclude some apps or How does &quot;Restrict background data&quot; work?. 

The above mentioned will give much more explanation on what to do, why to do etc. but I will just give you the means to read it. It's quite an easy process to compelte. I will, however, give an alternative which is not often used: AutoMateIt. Let me know if you manage to incorportate this into your issue!