1) In Android you cannot yet clearly tell when an application as a whole is foregrounded. There have been some pretty good hacks though. Check out this Stack Overflow answer. Be careful however that you should use onStart and onStop rather than onResume and onPause like the answer specifies.
https://stackoverflow.com/a/15573121/2293095
2) You can tell though when a specific Activity (usually a single page in the application) is in the foreground. I assume by reloading data, you mean you want to reload data from the local database or get from the server. In either case you can do this by overriding the Activity's onResume() method like so.
@Override
public void onResume(){
//generic function that will query or get from server
reloadData();
//make sure to refresh your view. Ex: ImageView
imageView.invalidate();
}