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 :

Service et AlarmManager


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 33
    Par défaut Service et AlarmManager
    Bonsoir tout le monde,
    Je viens encore une fois vers vous, je commence les choses sérieuses (enfin en fonction de mon niveau de débutant) avec android. J'aimerai ajouter quelques fonctionnalités à l'app que je suis entrain de développer comme par exemple notifier (je parle pas des notifications push bien sûre) l'utilisateur chaque deux jours après sa dernière de visite du genre InstaMessage.
    Pour l'instant j'essaie de comprendre de bien comprendre comme fonctionne les services mais j'ai quelques petites inquiétudes:

    Est-il possible possible de démarrer un service juste avant l'arrêt d'une application?
    j'ai reussi à créer une notification juste après quelques secondes du démarrage de l'app.
    J'espère que je me suis fait comprendre et merci d'avance pour vos reponses

  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
    Pourquoi démarrer un Service juste avant la "mort" (il n'y a jamais vraiment de "mort" dans Android) d'une application ?

    L'application peut très bien demander d'être notifiée par le système dans X minutes (15j par exemple).
    Attention, un reboot du téléphone = reset du AlarmManager. Pour palier à cela il faut répondre au "BOOT_COMPLETED" (ou un truc du genre) broadcast, et remettre les alarmes (par exemple en les ayant stockées dans des SharedPreferences).

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 33
    Par défaut
    Merci pour ta réponse nicroman.
    Je veux créer une notification deux (2) jours après la dernière visite de l'utilisateur.
    pour l'instant je fais des testes pour que ça puise fonctionner avec une alarme et des broadcastReceiver:
    quand j'appuie sur le bouton 'start' je crée une notification après 5 secondes
    voici mon code:
    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
     
    public void onReceive(Context context, Intent intent)
    		{
    			Toast.makeText(context, intent.getStringExtra("hello"), Toast.LENGTH_SHORT).show();
     
    			NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
     
    			NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext());
    			Notification notif = builder
    					.setSmallIcon(R.drawable.james)
    					.setContentText("ça marche a la merveille")
    					.setContentTitle("boulbi 92i")
    					.setWhen(System.currentTimeMillis()).build();
    			notif.flags = Notification.FLAG_AUTO_CANCEL;
     
    			manager.notify(0, notif);
     
    		}
     Button start = (Button)findViewById(R.id.button1);
            start.setOnClickListener(new OnClickListener()
            {
     
    			@Override
    			public void onClick(View arg0)
    			{
    				if(!test)
    				{
    					Intent hello = new Intent("ACTION_HELLO");
    					hello.putExtra("hello", "Bonjour tout le monde");
     
    					AlarmManager alarm = (AlarmManager)getSystemService(ALARM_SERVICE);
    					PendingIntent pending = PendingIntent.getBroadcast(MainActivity.this, 0, hello, 0);
     
    					//Calendar call = Calendar.getInstance();
    					//call.set(Calendar.SECOND, 20);
     
    					alarm.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 5000, pending);
    				}
    				else
    					Toast.makeText(MainActivity.this, "Le service est deja en cours", Toast.LENGTH_SHORT).show();
     
    				test = true;
    			}
     
            });
    Ce code fonctionne bien mais une fois que j'appuie sur le bouton et immédiatement je sors de l'application la notification n'apparaitra au bout des 5 secondes.
    Je sais pas ce que j'ai pas fais mais toute aide sera la bienvenue.
    cordialement

  4. #4
    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
    Le broadcast receiver a bien été enregistré dans le manifest de l'application ?

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 33
    Par défaut
    Non je l'avais pas fais mais maintenant que je l'ai fais c'est toujours la même chose

  6. #6
    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
    on peut voir la déclaration dans le manifest ? le broadcast receiver (l'implémentation complete) ? et surtout le setInexact du AlarmManager (avec l'intent) ?

Discussions similaires

  1. Questions concernant Service/AlarmManager
    Par Dyz3r dans le forum Android
    Réponses: 4
    Dernier message: 09/05/2013, 21h29
  2. naming service
    Par manuel dans le forum CORBA
    Réponses: 6
    Dernier message: 09/12/2002, 17h43
  3. [VB6] Lancer un service, par exemple Sql Server
    Par fea dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/10/2002, 14h07
  4. develloppement avec ORBit: service d'evenement
    Par belmontv dans le forum CORBA
    Réponses: 3
    Dernier message: 06/06/2002, 22h56
  5. Service de nommage java C++
    Par Anonymous dans le forum CORBA
    Réponses: 3
    Dernier message: 15/04/2002, 12h48

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