Finally, I found a solution to this problem. onWindowFocus change I just closed the dialog boxes created by the system and my problem was resolved. Below is a sample code.
@Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if(!hasFocus) {
Update:
On the mobile device, the lock of the status bar displayed on the screen is used below.
private Handler collapseNotificationHandler; @Override public void onWindowFocusChanged(boolean hasFocus) { boolean currentFocus = hasFocus; if (!hasFocus) { collapseNow(true,currentFocus); } } public void collapseNow(final boolean shouldCollapse, final boolean currentFocus ) { // Initialize 'collapseNotificationHandler' if (collapseNotificationHandler == null) { collapseNotificationHandler = new Handler(); } // If window focus has been lost && activity is not in a paused state // Its a valid check because showing of notification panel // steals the focus from current activity window, but does not // 'pause' the activity if (!currentFocus && !isPaused) { // Post a Runnable with some delay - currently set to 50 ms collapseNotificationHandler.postDelayed(new Runnable() { @Override public void run() { // Use reflection to trigger a method from 'StatusBarManager' Object statusBarService = getSystemService("statusbar"); Class<?> statusBarManager = null; try { statusBarManager = Class.forName("android.app.StatusBarManager"); } catch (ClassNotFoundException e) { e.printStackTrace(); } Method collapseStatusBar = null; try { // Prior to API 17, the method to call is 'collapse()' // API 17 onwards, the method to call is `collapsePanels()` if (Build.VERSION.SDK_INT > 16) { collapseStatusBar = statusBarManager.getMethod("collapsePanels"); } else { collapseStatusBar = statusBarManager.getMethod("collapse"); } } catch (NoSuchMethodException e) { e.printStackTrace(); } collapseStatusBar.setAccessible(shouldCollapse); try { collapseStatusBar.invoke(statusBarService); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } // Check if the window focus has been returned // If it hasn't been returned, post this Runnable again // Currently, the delay is 50 ms. You can change this // value to suit your needs. if (!currentFocus && !isPaused) { collapseNotificationHandler.postDelayed(this, 50); } } }, 0); } }
"isPaused" boolean, which sets true when the application is paused.
source share