The Android app accepts alarm timing messages via broadcast receiver to send notification, which requires the app to be out of the running state before sending notification. Check whether the app itself is in the foreground of a purpose is: to determine whether all the activity of the app is at the front desk; Looking for a long time on the internet, find a better judgment method for a person:
public boolean isappforground (Context mcontext) { Activitymanager am = (activitymanager) mcontext.getsystemservice (Context.activity_service); list<runningtaskinfo> tasks = am.getrunningtasks (1); if (!tasks.isempty ()) { ComponentName topactivity = tasks.get (0). topactivity; if (!topactivity.getpackagename (). Equals (Mcontext.getpackagename ())) { return false; } } return true;}
Note: Getrunningtasks method, Android document said API level 21 start the method will deprecated, temporarily did not go to test, do not know how much impact
Android to determine if the app is in the foreground