40 votes

Comment fermer la boîte de dialogue système dans Android?

Je dois rejeter ce système Dialog (ci-dessous). J'obtiens cette valeur mais je ne suis pas en mesure de la rejeter par programme dans Service not in Activity.

Ma question est:

  1. Est-il possible de le rejeter? si oui, aidez-moi ou guidez-moi pour y parvenir.

entrez la description de l'image ici

22voto

Ashutosh Points 157

S'il te plaît vérifie le

 public void onWindowFocusChanged(boolean isTrue) {
        super.onWindowFocusChanged(isTrue);

        if (!isTrue) 
        { 
        Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
            sendBroadcast(closeDialog);
        }
    }
 

Cela fonctionne dans mon code.

20voto

Ved Prakash Points 7244

Vous pouvez utiliser - ACTION_CLOSE_SYSTEM_DIALOGS

La diffusion d'Action: C'est l'émission quand une action de l'utilisateur doit demander un système temporaire de dialogue à rejeter.

public static final String ACTION_CLOSE_SYSTEM_DIALOGS

Ajout de l'API de niveau 1

La diffusion d'Action: C'est l'émission quand une action de l'utilisateur doit demander temporaire de la boîte de dialogue système de rejeter. Quelques exemples de système temporaire boîtes de dialogue sont la fenêtre de notification-l'ombre et la récente boîte de dialogue tâches.

La Valeur de la constante: "android.l'intention.d'action.CLOSE_SYSTEM_DIALOGS"

Cette information peut être trouvée au développeur android site.

Exemple de travail-

Android Manifest-

<receiver android:name=".SystemDialogReceiver">
            <intent-filter>
                <action android:name="android.intent.
                 action.CLOSE_SYSTEM_DIALOGS" />
            </intent-filter>
</receiver>

Fichier de classe-

class SystemDialogReceiver extends BroadcastReceiver {
        private static final String SYSTEM_DIALOG_REASON_KEY = "reason";
        private static final String 
        SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps";
        @Override
        public void onReceive(Context context, Intent intent) {

            if(intent.getAction().equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)){
                String dialogType = intent.
                getStringExtra(SYSTEM_DIALOG_REASON_KEY);
                if(dialogType != null && dialogType.
                equals(SYSTEM_DIALOG_REASON_RECENT_APPS)){
                    Intent closeDialog = 
                    new Intent(Intent.
                    ACTION_CLOSE_SYSTEM_DIALOGS);
                    context.sendBroadcast(closeDialog);

                }
            }

        }

    }

12voto

Nermeen Points 10330

Essayez d'utiliser les éléments suivants:

 sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
 

2voto

user3063925 Points 37

Vous pouvez utiliser ACTION_CLOSE_SYSTEM_DIALOGS lorsque le focus de la fenêtre est perdu. Mais veuillez noter que cela empêchera également l'utilisateur d'éteindre le téléphone pendant que votre application est en cours d'exécution, car la boîte de dialogue Éteindre est également une boîte de dialogue système.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X