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 :

Différencier une application en background d'une activité en pause


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut Différencier une application en background d'une activité en pause
    Salut à tous,

    J'ai une appli qui est principalement basé sur les sockets. Actuellement dans le onResumed'une activity la connexion réseau s'établie dans un Thread , dans le onPausele Thread et la socket sont fermés.

    Je souhaite persister la connexion réseau au fil de la navigation des activities. Pour cela je passe par un service que je lance dans une activité puis que je termine quand l'utilisateur revient sur l'écran d'accueil.

    Je souhaiterais que mon service se termine également quand mon application passe en background (appel , appuis sur home ...) pour ne pas utiliser de data de manière "invisible" pour l'utilisateur.

    Y'a t'il une solution pour différencier cet état particulier ?

    Pour illustrer un peu plus mon problème :
    Imaginons une application qui télécharge un jpeg à intervalle régulier. je veux que mon jpeg continue à se télécharger au fil de la navigation dans les app mais que tout se stop quand l'application n'est plus utilisé.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Après moultes recherche j'ai fini par trouver une solution qui semble fonctionnelle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public static boolean isApplicationSentToBackground(final Context context)
    {
    	ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    	List<RunningTaskInfo> tasks = am.getRunningTasks(1);
    	if (!tasks.isEmpty()) {
    		ComponentName topActivity = tasks.get(0).topActivity;
    		if (!topActivity.getPackageName().equals(context.getPackageName())) {
    			return true;
    		}
    	}
    	return false;
    }
    Nécessite la permission :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <uses-permission android:name="android.permission.GET_TASKS" />
    à placer dans le onPause() , la fonction va venir vérifier si le process de notre application est le plus haut placé dans la liste des taches (changement d'activity) ou non (passage en background)
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/10/2010, 10h15
  2. Réponses: 8
    Dernier message: 17/02/2010, 12h19
  3. Réponses: 6
    Dernier message: 12/12/2007, 16h10
  4. Réponses: 1
    Dernier message: 09/03/2007, 11h38

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