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 :

Activité qui s'ouvre et se ferme immédiatement


Sujet :

Android

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Activité qui s'ouvre et se ferme immédiatement
    Bonjour à tous,

    Je développe actuellement une app et j'ai un petit souci quand je veux lancer une activité après une pression sur un bouton. L'écran change l'interface comme je le veux mais reviens à la "MainActivity" de manière immédiate, ça doit durer 1/2 seconde.
    Aucune erreur n'est indiquée dans la console, et j'ai donc du mal à détecter d'où vient le problème. J'ai aussi utilisé le debugger fournit par Android Studio, je n'ai rien trouvé de plus.

    La seule chose qui est indiquée dans la console après avoir appuyé c'est ce message I/InputMethodManager: [IMM] startInputInner - mService.startInputOrWindowGainedFocus

    Toute suggestion est bienvenue

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur Android
    Inscrit en
    Avril 2015
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Android

    Informations forums :
    Inscription : Avril 2015
    Messages : 63
    Points : 102
    Points
    102
    Par défaut
    T'as pas un Huawei par hasard?
    Les logs n'affiche rien de plus?
    C'est quoi le code pour lancer ton activité?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Non, je teste sur mon Galaxy S7.

    Les logs n'affichent rien de plus à part si j'en rajoute moi-même via la classe Log.

    Fonction onCreate :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            // récupération de la vue Button
            b = (Button)findViewById(R.id.jouer);
            b.setEnabled(false);
            final Midi m = this;
    
            // ajout d'un évènement sur le bouton
            b.setOnClickListener(new OnClickListener(){
                @Override
                public void onClick(View v) {
                    Intent i = new Intent(m, MainActivity.class);
                    startActivity(i);
                }
            });
            Log.i(TAG, "app started ========================");
            Button bluetoothScanButton = (Button) findViewById(R.id.bluetooth_scan); <= bouton à appuyer pour lancer l'activité
            bluetoothScanButton.setOnClickListener(mBluetoothScanListener); <= fonction lançant l'activité lors d'un click
    
            ListView listView = (ListView) findViewById(R.id.open_device_list);
            listView.setEmptyView(findViewById(R.id.empty));
    
            // Initializes list view adapter.
            mOpenDeviceListAdapter = new OpenDeviceListAdapter();
            listView.setAdapter(mOpenDeviceListAdapter);
    
            if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_MIDI)) {
                setupMidi();
            } else {
                Toast.makeText(Midi.this, "MIDI not supported!",
                        Toast.LENGTH_LONG).show();
                bluetoothScanButton.setEnabled(false);
            }
        }
    Fonction mBluetoothScanListener

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    private final OnClickListener mBluetoothScanListener = new OnClickListener() {
            @Override
            public void onClick(View v) {
                if (checkSelfPermission(
                        Manifest.permission.BLUETOOTH) == PackageManager.PERMISSION_GRANTED) {
                    openBluetoothScan(); <= c'est dans cette fonction que l'intent est créé et que l'activité est lançée
                    Log.i(TAG, "open bluteooth scan");
                } else {
                    requestPermissions(
                            new String[] { Manifest.permission.BLUETOOTH }, 0);
                }
            }
        };
    Fonction openBluetoothScan

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private void openBluetoothScan() {
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_PICK);
            intent.setClassName(PACKAGE_NAME, PACKAGE_NAME + ".DeviceScanActivity");
            startActivityForResult(intent, REQUEST_BLUETOOTH_SCAN);
    }
    Tout ce code provient du projet MidiBtlePairing. J'aimerais que l'on puisse se connecter à un appareil avant de lancer mon application, ça m'éviterait de passer par une deuxième application (MidiBtlePairing) pour le faire.

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur Android
    Inscrit en
    Avril 2015
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Android

    Informations forums :
    Inscription : Avril 2015
    Messages : 63
    Points : 102
    Points
    102
    Par défaut
    Y'avais des "finish()" dans la seconde activité, ça pourrais venir de la.
    Tu pourrais mettre un point d'arrêt sur la ligne "if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {" , lancer l'application en mode debugage et avancer en pas à pas pour voir par ou le code passe?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    J'ai bien mis un breakpoint à la ligne indiquée, la condition n'est pas vérifiée car mon téléphone supporte le BLE.
    La fonction finish() n'est jamais appelée. Quand j'exécute pas à pas, j'avance avec la touche F8 et le debugger m'amène jusqu'à la classe Looper, c'est dans cette classe où du code est executé en boucle et où mon activité s'arrête.

  6. #6
    Membre actif Avatar de Altak
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 170
    Points : 245
    Points
    245
    Par défaut
    Bonjour,

    On peut voir le code de Looper?

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/10/2007, 15h03
  2. Réponses: 10
    Dernier message: 09/11/2006, 17h07
  3. bouton qui ferme un formuaire et qui en ouvre un autre
    Par guimauve dans le forum Access
    Réponses: 6
    Dernier message: 13/07/2006, 10h00
  4. Réponses: 27
    Dernier message: 11/07/2006, 19h36
  5. programme qui s ouvre, execute et se ferme ..
    Par hijodelanoche dans le forum Langage
    Réponses: 2
    Dernier message: 01/09/2005, 09h37

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