0
I have a BroadcastReceiver that displays a notification to the user!
But if the user has the app open (with the screen active), I would like to cancel the notification!
Is there any way to find out if the app is open?
0
I have a BroadcastReceiver that displays a notification to the user!
But if the user has the app open (with the screen active), I would like to cancel the notification!
Is there any way to find out if the app is open?
1
I usually use this method to launch or not a notification to the user.
It will return true if the app is closed and false open case. Apply it to your Receiver.
    /**
 * Method checks if the app is in background or not
 */
public static boolean isAppIsInBackground(Context context) {
    boolean isInBackground = true;
    ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT_WATCH) {
        List<ActivityManager.RunningAppProcessInfo> runningProcesses = am.getRunningAppProcesses();
        for (ActivityManager.RunningAppProcessInfo processInfo : runningProcesses) {
            if (processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
                for (String activeProcess : processInfo.pkgList) {
                    if (activeProcess.equals(context.getPackageName())) {
                        isInBackground = false;
                    }
                }
            }
        }
    } else {
        List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
        ComponentName componentInfo = taskInfo.get(0).topActivity;
        if (componentInfo.getPackageName().equals(context.getPackageName())) {
            isInBackground = false;
        }
    }
    return isInBackground;
}
Browser other questions tagged android broadcastreceiver
You are not signed in. Login or sign up in order to post.