I think I have better solution. Because you can build in simply MyApplication.activityResumed(); to every Activity by one extend. 
Firstly you have to create (like CyberneticTwerkGuruOrc)
public class MyApplication extends Application {
  public static boolean isActivityVisible() {
    return activityVisible;
  }  
  public static void activityResumed() {
    activityVisible = true;
  }
  public static void activityPaused() {
    activityVisible = false;
  }
  private static boolean activityVisible;
}
Next, you have to add Application class to AndroidManifest.xml
<application
    android:name="your.app.package.MyApplication"
    android:icon="@drawable/icon"
    android:label="@string/app_name" >
Then, create class ActivityBase
public class ActivityBase extends Activity {
    @Override
    protected void onPause() {
        super.onPause();
        MyApplication.activityPaused();
    }
    @Override
    protected void onResume() {
        super.onResume();
        MyApplication.activityResumed();
    }
}
Finally, when you crate new Activity, you can simply extends it by ActivityBase instead of Activity. 
public class Main extends ActivityBase {
    @Override
    protected void onResume() {
        super.onResume();
    }
    @Override
    protected void onPause() {
        super.onPause();
    }
}
For me It's better method cause you have to just remember about extend by ActivityBase. In addition you can expand your base function in future. In my case I added receivers for my service and alerts about network in one class. 
If you wanna check visibility of your App, you can simply call
MyApplication.isActivityVisible()