Wie Sie feststellen können, ob der Benachrichtigungsschatten in Android heruntergezogen ist

Ich habe ein Programm, das eine Benachrichtigung erstellt, wenn die Anwendung nicht ausgeführt wird. Dazu habe ich den folgenden Code verwendet:

public void onWindowFocusChanged(boolean focus)
{
    inFocus = focus;

    if (inFocus)
    {//If this activity is in focus, fills data and clears notifications
        fillData();
        Notify.clear();
    }
    else
    {
        if (!RespondScreen.inFocus && !ClearDialog.inFocus)
        {
            Creates a notification
        }
    }
}

Dies funktioniert einwandfrei, es sei denn, der Benachrichtigungsschatten ist heruntergezogen. Dadurch ist die Aktivität nicht im Fokus und da keine der beiden anderen Aktivitäten im Fokus ist, wird eine Benachrichtigung erstellt. Diese Benachrichtigung wird gelöscht, sobald der Schatten wieder hochgezogen wird, es entsteht jedoch eine störende, unnötige Störung für den Benutzer. Gibt es eine Einstellung, die ich verwenden kann, um zu testen, ob der Benachrichtigungsschatten scharfgestellt ist, oder eine ganz andere?

Bearbeiten: Mit Hilfe von Qberticus 'Rat konnte ich eine praktikable Lösung finden:

    public void onWindowFocusChanged(boolean focus)
{
    if (focus)
    {//If this activity is in focus, fills data and clears notifications
        inFocus = focus;
        fillData();
        Notify.clear();
    }
}

@Override
public void onPause()
{
    super.onPause();
    inFocus = false;
    Handler handler = new Handler();  
    handler.postDelayed(new Runnable() {  
         public void run() {  
             if (!RespondScreen.inFocus && !ClearDialog.inFocus)
             {
                Intent notifier = new Intent();
                notifier.setAction("itp.uts.program.NOTIFY");
                Bundle bundle = new Bundle();
                bundle.putBoolean("StartNotify", true);
                bundle.putBoolean("StartSound", false);
                notifier.putExtras(bundle);
                getApplicationContext().startService(new Intent(notifier));
             }
         }  
    }, 200);   
}

Die onResume-Methode funktionierte aus irgendeinem Grund nicht mit Notify.clear (), daher habe ich eine Kombination aus meinem Versuch und dem Vorschlag von Qberticus verwendet. Es ist ein bisschen ungeschickt, aber es funktioniert perfekt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage