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 :

Acceder à une Activity depuis un Service


Sujet :

Android

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Acceder à une Activity depuis un Service
    Bonjour,

    Ceci est mon premier développement android et j'ai besoin d'un peu d'aide.

    J'ai créé une activité, cette activité à quelques fonctionnalités d'IHM et je lui ai ajouté une alarme avec service (je suis parti de l'exemple Alarm_Service avec le sdk)

    Mais depuis mon Service, je n'arrive pas à accéder à mon activity : par ex monobjet statique qui se trouve dans mon activity il parait toujours null ...

    Ou est mon erreur ?

    Voici quelques éléments de mon activity :

    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
    public class Monactivity extends Activity{
     
    	public static MaClasse monobjet;
            private PendingIntent mAlarmSender;
     
          @Override
    	public void onCreate(Bundle savedInstanceState) {
    		[...]
    		monobjet=new MaClasse( ...);
     
    		mAlarmSender = PendingIntent.getService(MonActivity.this,
                    0, new Intent(MonActivity.this, AlarmService_Service.class), 0);
     
    		long firstTime = SystemClock.elapsedRealtime();
    		AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
            am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                            firstTime, 10*1000, mAlarmSender);
     
     
    	}  
     
    }
    Pour mon alarm avec service, je n'ai rien inventé, j'ai pris ceci :
    http://developer.android.com/resourc...e_Service.html
    et j'ai juste ajouté un test dans le OnCreate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     if (MonActivity.monobjet!=null)
        	{
        		 Toast.makeText(this, "not null", Toast.LENGTH_SHORT).show();
        	}
            else
            {
            	Toast.makeText(this, "null", Toast.LENGTH_SHORT).show();
            }
    Je vois bien tous mes toast ,mais ils m'indiquent toujours que mon objet est null ...

    Ou est mon erreur ?

    Quel est la méthode pour utiliser des objets de mon activity depuis mon service ? ou encore exécuter des fonctions ? Les mettre static n'est pas la solution ?

    monobjet permet de faire des modifications d'IHM dans mon activité, mais doit pouvoir être appelé de mon service : le déclarer dans mon activité était il la bonne solution ?

    Merci de votre aide
    ebodin

  2. #2
    Membre émérite
    Avatar de nbenbourahla
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 41
    Points : 2 348
    Points
    2 348
    Par défaut
    Salut,

    Un service est un processus qui est en exécution en tâche de fond, indépendamment de ton activité, c'est à dire le service peut toujours être en exécution si ton activité n'est pas lancé, initialisé ou en pause par exemple. Donc aucun lien concret n'existe à l'initialisation entre les deux donc plusieurs solutions sont à ta disposition :
    - Il faut soit que tu declare ce lien grâce aux Binder.
    - Utiliser ce qu'on appelle des intents diffusées (des sortes d'intents partagés entre différents objets) pour que ton service accédé à ta variable de service.
    - Ou bien des SharedPreference pour partagé des variables avec des mots clés: http://developer.android.com/referen...eferences.html

    C'est les trois pistes qui me viennent en tête directement mais je vais me regarder plus attentivement pour savoir qu'elle est la meilleur et celle qui convient le plus à ton problème.

    N’hésite pas à partager l'ensemble de ton code, sa sera plus facile.

    Cordialement
    --
    Développeur Android
    nazim.benbourahla.com

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Merci pour ta réponse. Je vais fouiller les pistes que tu proposes.

    ebodin

Discussions similaires

  1. assurer la liaison entre une activity et un service
    Par fghjk dans le forum Android
    Réponses: 1
    Dernier message: 21/09/2009, 11h58
  2. Comment lancer une application depuis un service ?
    Par bhf37 dans le forum Langage
    Réponses: 7
    Dernier message: 05/03/2009, 14h05
  3. Lancer une appli depuis un service windev
    Par vexal dans le forum WinDev
    Réponses: 2
    Dernier message: 04/03/2009, 11h22
  4. Réponses: 2
    Dernier message: 31/01/2009, 17h44
  5. Réponses: 9
    Dernier message: 11/01/2007, 21h23

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