Search code examples
androidandroid-activityonresumeonpause

Android OnApplicationPause/OnApplicationResume


Is there any way to handle when my android application goes into background and back?

I want to use notification service for a on-line game - I use a service, which shows an alert when something happens in the game. I want alerts to show only if my application is active (on the foreground), so I need to start my service when application goes foreground and stop it when application goes background.

Note that I cannot use Activity.OnPause/OnResume methods. I have many activities in my application, and if I'll handle OnPause/OnResume, it is possible in a moment, when a user swtches one activity to another, application will look like background, thorough it will be foreground actually


Solution

  • Problem solved in a following way (C# code, mono for android)

    class MyService : Service{
      OnSomethingHappened(){
        ActivityManager am = (ActivityManager) GetSystemService(ActivityService);
        if(am.RunningAppProcesses.Any((arg) => 
          arg.ProcessName == "myprocessname" &&
          arg.Importance == ActivityManager.RunningAppProcessInfo.ImportanceForeground
        )){
           Trace("FOREGROUND!!!!");
        }else{
           Trace("BACKGROUND!!!!");
        }
      }
    }