IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Utilisation de onPause() quand j'ouvre les settings de mon WIFI


Sujet :

Android

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2012
    Messages : 35
    Points : 27
    Points
    27
    Par défaut Utilisation de onPause() quand j'ouvre les settings de mon WIFI
    Bonjour à tous ! dans mon activité je propose a l'utilisateur d'activer son internet avec cette méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
        public static void showNoConnectionDialog(Context ctx1) {
        final Context ctx = ctx1;
        AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
        builder.setCancelable(true);
        builder.setMessage("This requires network access. Please, enable your mobile network or Wi-Fi.");
        builder.setTitle("No internet connection");
        builder.setPositiveButton("Accept", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                ctx.startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));
            }
        });
        builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                return;
            }
        });
        builder.setOnCancelListener(new DialogInterface.OnCancelListener() {
            public void onCancel(DialogInterface dialog) {
                return;
            }
        });
     
        builder.show();
    }
    ca marche bien ! le problème c'est que lorsque j'enclenche le bouton retour de mon mobile, je ne peux plus revenir a mon activité / application car il y a une méthode "finish()" dans ma méthode "onPause" du cycle d'activité ... Le truc c'est que j'aimerais garder cette méthode finish() si l'utilisateur quitte cette activité d'un autre moyen que lorsque je lui propose d'activer son internet dans le dialogue indiqué dans le code au dessus...

    Comment est ce que je pourrais faire ca ? Dois je mettre des conditions dans ma méthodes onPause() ou y a t'il un autre moyen ?

    Merci d'avance !

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Un attribut booléen te servant d'indicateur pour différencier les cas "wifi/pas wifi" ?
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2012
    Messages : 35
    Points : 27
    Points
    27
    Par défaut
    Le truc c'est que l'utilisateur n'est pas obligé d'activer le wifi dans cette activité, en fait j'aimerais une condition du genre si l'utilisateur quitte l'application pour activer son wifi donc a partir de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ctx.startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));
    ne pas enclencher la methode "finish" dans onPause(), sinon l'enclencher :S mais je sais pas si c ets possible

  4. #4
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Le onPause est appelé dès que l'activité n'est plus visible (enfin... aussi vite que faire se peut), ce n'est vraiment pas le bon endroit pour faire un finish()....

    Il vaut mieux faire le test sur le onResume()... si pas de WiFi, proposer à l'utilisateur de le mettre en route (pas besoin d'aller dans les prefs pour ca d'ailleurs), ou de quitter (et faire le finish() à cet endroit là !)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    class MainActivity
    {
         public void onResume()
         {
              if (!isWifiEnabled()) {
                   AlertDialog .....
                   builder.setOnCancelListener(new DialogInterface.OnCancelListener() {
                      public void onCancel(DialogInterface dialog) {
                           MainActivity.this.finish();
                       }
                     });
              }
         }
    }
    Non ?
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2012
    Messages : 35
    Points : 27
    Points
    27
    Par défaut
    En fait l'activité se présente comme ceci :

    l'utilisateur arrive sur l'activité, dedant il doit encoder une adresse dans des champs. Soit il les rentre manuellement, soit il enclenche un toggleButton qui le localise et rempli les champs à sa place. Une fois qu'il a rempli les champs il appui sur un bouton sauver et il quitte l'activité. Eh ben voila en écrivant ce message j'ai réalisé que j'étais bête et qu'en placant betement mon onFinish() après le startActivity(...) qui s'enclenche en poussant sur mon bouton sauver le problème était arrangé et que j'avais pas a le mettre dans mon onPause ou onResume :p !!

    Merci quand même ;-) !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/06/2010, 22h14
  2. Réponses: 1
    Dernier message: 29/03/2010, 15h30
  3. Signal/Slot : Quand ne pas les utiliser ?
    Par Mendahor dans le forum Qt
    Réponses: 1
    Dernier message: 27/02/2010, 13h15
  4. Réponses: 2
    Dernier message: 26/06/2008, 13h19
  5. utiliser les set en C++
    Par yaskiki dans le forum C++
    Réponses: 2
    Dernier message: 05/10/2005, 16h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo