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 :

Broadcast receiver continue après la fermeture de l'application !


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 61
    Par défaut Broadcast receiver continue après la fermeture de l'application !
    Bonjour, J'ai un problème que je ne peux pas résoudre, le broadcast receiver continue de fonctionner lorsque je quitte mon application. Je dois arrêter de force l'application manuellement, alors que je la ferme; Merci de votre aide. Voici mon manifeste, et mon récepteur:

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    package com.locateit.antholife.locateit;
     
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.telephony.SmsMessage;
    import android.widget.Toast;
     
    public class MyReceiver extends BroadcastReceiver {
        public MyReceiver() {
        }
     
        public int lock = 0;
     
        @Override
        public void onReceive(Context context, Intent intent) {
     
     
            Bundle extra = intent.getExtras();
            if (extra != null) {
                Object[] pdus = (Object[]) extra.get("pdus");
                final SmsMessage[] messages = new SmsMessage[pdus.length];
                for (int i = 0; i < pdus.length; i++) {
                    messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
                }
                if (messages.length > -1) {
                    for (int i = 0; i < messages.length; i++) {
                        String messageBody = messages[i].getMessageBody();
                        String phoneNumber = messages[i].getDisplayOriginatingAddress();
                        Toast.makeText(context, "Expéditeur:" + "\n" + phoneNumber, Toast.LENGTH_LONG).show();
                        Toast.makeText(context, "Message : " + "\n" + messageBody, Toast.LENGTH_LONG).show();
     
                        if (messageBody.equals("CS")) {
     
                            lock = 1;
                            SharedPreferences sharedPreferences = context.getSharedPreferences("appSharedPreferences", Context.MODE_PRIVATE);
                            SharedPreferences.Editor editor = sharedPreferences.edit();
                            editor.putString("lockphone", phoneNumber);
                            editor.putInt("locksecurity", lock);
                            editor.commit();
                            Toast.makeText(context, "Association réussie !", Toast.LENGTH_LONG).show();
                            Toast.makeText(context, "L'option Connexion GSM est maintenant désactivée.", Toast.LENGTH_LONG).show();
     
                        }
                     /**   else {
                            Toast.makeText(context, "Echec de l'association !", Toast.LENGTH_LONG).show();
                            Toast.makeText(context, "Merci de renseigner un numéro correct", Toast.LENGTH_LONG).show();
     
                        } **/
                    }
                }
            }
        }
    et mon manifest :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.locateit.antholife.locateit">
     
        <uses-permission android:name="android.permission.BLUETOOTH" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.SEND_SMS" />
        <uses-permission android:name="android.permission.RECEIVE_SMS" />
        <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
     
     
     
        <application
            android:allowBackup="true"
            android:icon="@mipmap/locate"
            android:label="@string/app_nameprincipal"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <uses-feature
                android:glEsVersion="0x00020000"
                android:required="true" />
     
            <supports-screens
                android:anyDensity="true"
                android:largeScreens="true"
                android:normalScreens="true"
                android:resizeable="true"
                android:smallScreens="true"
                android:xlargeScreens="true" />
     
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
     
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity
                android:name=".Main2Activity"
                android:label="@string/title_activity_main2"
                android:theme="@style/AppTheme.NoActionBar" />
            <activity
                android:name=".Changelog"
                android:label="@string/title_activity_changelog"
                android:theme="@style/AppTheme.NoActionBar" />
     
            <meta-data
                android:name="com.google.android.gms.version"
                android:value="@integer/google_play_services_version" />
            <meta-data
                android:name="com.google.android.maps.v2.API_KEY"
                android:value="AIzaSyBfmF3WWxsPhufZR5keiDNRy-33hJI1rvM" />
     
            <activity
                android:name=".lequipe"
                android:label="@string/nomequipe" />
            <activity
                android:name=".Setting"
                android:label="@string/title_activity_setting" />
            <activity android:name=".MDPinterne"
                      android:label="@string/title_activity_mdpsecure" />
            <activity android:name=".Bluetooth"
                      android:label="@string/title_activity_bluetooth" />
     
            <receiver android:name=".MyReceiver">
            <intent-filter android:priority="999">
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
        </receiver>
     
            <activity android:name=".Smsconnection"
                android:label="@string/title_activity_gsm" >
     
            </activity>
        </application>
     
    </manifest>

  2. #2
    Expert confirmé

    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
    Billets dans le blog
    3
    Par défaut
    Jusque là c'est normal... c'est le comportement par défaut d'un receiver déclaré dans le manifest ... (et même leur but: être capable de recevoir des notifications même quand l'application n'est pas lancée).


    Si tu veux enregistrer/désenregistrer un receiver au niveau de l'activité par exemple (ou d'un service, ou que sais-je), il faut alors le déclarer inactif, et l'activer/désactiver manuellement en utilisant:
    setComponentEnabledSetting

    Ou encore, en le créant "à la main", et en utilisant:
    registerReceiver / unregisterReceiver

Discussions similaires

  1. Timer enabled meme aprés la fermeture de l'application
    Par jafik2005 dans le forum VB.NET
    Réponses: 6
    Dernier message: 26/03/2010, 09h48
  2. Réponses: 2
    Dernier message: 14/11/2008, 22h37
  3. Réponses: 2
    Dernier message: 29/08/2006, 16h27
  4. [C# 1.1] Pourquoi l'action continue apres l'arrêt du debug ?
    Par Monstros Velu dans le forum Services Web
    Réponses: 9
    Dernier message: 17/06/2006, 03h14
  5. fermeture d'une application après un temp d'inactivité?
    Par sitdown dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 24/08/2005, 15h44

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