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 :

Notification remet a zero countdowntimer


Sujet :

Android

  1. #1
    Membre éprouvé Avatar de linked
    Profil pro
    Développeur Android
    Inscrit en
    Mai 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Android

    Informations forums :
    Inscription : Mai 2008
    Messages : 88
    Par défaut Notification remet a zero countdowntimer
    Bonjour,

    J'ai une application avec des countdowntimer et qui crée des notifications. Mon probleme est que si je clique sur une notification, je reviens bien sur mon application mais tout mes comptes à rebours sont à zero, comme si je lance l'application pour la premiere fois.
    Alors que si je clique sur "home" pendant l'application et je clique sur l'icone de l'application pour la relancer, mes compteurs ne sont pas remis à zero(bonne chose).

    Peut on faire pour que quand je clique sur la notification ça ne me fait pas de "reset" ?

    Voila la classe que j'utilise pour lancer toutes mes notifications:
    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
    public void Notif (CharSequence titre,CharSequence mess){
    		when = System.currentTimeMillis();
    		context = getApplicationContext();
    		notification = new Notification(icon, tickerText, when);
     
     	    contentTitle = titre;
     	    contentText = mess;
     
     	    notificationIntent = new Intent(bar_status.this, bar_status.class);
     	    contentIntent = PendingIntent.getActivity(bar_status.this, 0, notificationIntent, 0);
     
     	    notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
     
     	    mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
     
     
     	     mNotificationManager.notify(notifid,notification);
     	     notifid++;
     
    	}

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Regarde cette discutions :
    http://www.developpez.net/forums/d92...e-application/

    Le problème, c'est le cycle de vie de l'activity qui est assez bizarre... Suivant le cas, l'activity est recréé et si tu n'en tien pas compte, tu perd les informations affichées.

  3. #3
    Membre éprouvé Avatar de linked
    Profil pro
    Développeur Android
    Inscrit en
    Mai 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Android

    Informations forums :
    Inscription : Mai 2008
    Messages : 88
    Par défaut
    Je suis debutant avec android et java, je pensais que si mon Intent ou un autre parametre de ma fonction été changé ça pourrait eviter de recreer l'activity et avoir le meme effet que si je clique sur l'icone pour l'ancer mon application.
    Car meme si je suis dans mon apllication et je clique sur une notification ca me relance tout :s

    edit: en fait un clique sur la notification me lance une seconde fois mon application. Si je fait la touche "retour" ça tue ma seconde application et je tombe sur ma premiere, celle que je voudrais voir en cliquant sur la notification.
    J'ai toujours pas la solution...

    edit2:
    J'ai trouvé, dans le manifest j'ai rajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    android:launchMode="singleInstance"

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par linked Voir le message
    edit2:
    J'ai trouvé, dans le manifest j'ai rajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    android:launchMode="singleInstance"
    Si je me trompe pas, ca permet de n'avoir qu'une activity d'instancier à la fois, mais ça n'empêche pas sa destruction/recreation par android.

  5. #5
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Salut,

    Tu as des mécanismes plus poussés de gestion des données persistantes sur Android : http://developer.android.com/guide/t...e-changes.html
    Tu peux ainsi sauvegarder l'état de tes applications lors de la destruction et les restaurer lors de la création de tes Activity. Normalement ton application est suceptible d'être détruite à n'importe quel moment lorsqu'elle est en background (le système à besoin de mémoire, boom il peut crasher ton appli), du coup, si tu veux mémoriser des choses, il faut toujours implémenter ce genre de mécanisme.

  6. #6
    Membre éprouvé Avatar de linked
    Profil pro
    Développeur Android
    Inscrit en
    Mai 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Android

    Informations forums :
    Inscription : Mai 2008
    Messages : 88
    Par défaut
    Effectivement quelque chose ne tourne pas rond dans mon application.
    Le mode Singleinstance fonctionne bien dans le sens ou je n'ai accès qu'a une seule fois mon application, pas de lancement en double ou en triple.

    Par contre on dirait qu'au bout d'un moment j'ai mon application qui tourne en tache de fond et je peut en relancer une nouvelle sans pouvoir visualiser celle en fond.

    Du coup je me retrouve avec des notifications en double ou en triple. En verifiant les programmes qui tournent je vois bien mon application d'ouverte alors que j'avait appuyé sur la touche retour(je sais que ca ne la kill pas maintenant).

    La solution serait elle donc d'utiliser ces mecanismes mais dois je garder le singleinstance ?
    J'ai des comptes à rebours qui tournent en fonction d'une page web(c'est pour analyser le serveur d'un jeu,l'etat de guerre si il se passe un truc ou pas) et sauvegarder l'etat d'un compteur pour le continuer 2h apres serait completement inutil.

    Le programme doit tourner sans arret ou fermer completement pour ouvrir un tout nouveau comptage, mais surtout pas en double ou triple, ni sauvegarder des valeurs pour les utiliser ne serait ce que 5min plus tard, cela fausserait toute l'analyse des compteurs.

    edit: peut etre en fesant un service cela fonctionnerait mieux, j'ai deja comprit comment en lancer par contre pour envoyer des datas du service à l'application j'ai pas encore compris. Si quelqu'un à un tuto simple....

    edit2:j'arrive à echanger des données avec aidl mais seulement si je met l'apel de ma fonction sur un bouton onclick. Si je le met dans OnResume de l'activity ca crash, c'est normal ?

    edit 3: bon apparament c'est que le service n'est pas actif tout de suite le probleme.

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

Discussions similaires

  1. Lire registre, variable ne se remet pas à zero
    Par snorky94 dans le forum VBScript
    Réponses: 1
    Dernier message: 30/10/2012, 18h40
  2. Refresh remet tout a zero
    Par eddy37fr dans le forum IHM
    Réponses: 1
    Dernier message: 08/08/2008, 14h55
  3. Mon bios se remet a zero tout seul
    Par koKoTis dans le forum Composants
    Réponses: 3
    Dernier message: 26/08/2007, 14h07
  4. Ouverture de session se remet à zero
    Par jcaspar dans le forum Windows XP
    Réponses: 2
    Dernier message: 27/07/2007, 16h47
  5. Réponses: 3
    Dernier message: 01/07/2003, 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