J'ai un composant de service (tâche commune à toutes mes applications), qui peut être appelé par l'une des applications. J'essaie d'accéder à l'objet de service de toutes les activités, j'ai remarqué que celui qui a créé le service [startService (intention)] a la bonne informaion. Mais le repos n'obtient pas l'informaion nécessaire. Mon code est le suivant:Plusieurs activités liées à un service
// Activity.java
public void onCreate(Bundle savedInstanceState) {
...
Intent intent = new Intent (this.context, Service.class) ;
this.context.startService(intent) ;
this.context.bindService(intent, this, Context.BIND_AUTO_CREATE) ;
...
String result = serviceObj.getData() ;
}
public void onServiceConnected(ComponentName name, IBinder service) {
serviceObj = ((Service.LocalBinder)service).getService();
timer.scheduleAtFixedRate(task, 5000, 60000) ;
}
// Service.java
private final IBinder mBinder = new LocalBinder();
public class LocalBinder extends Binder {
Service getService() {
return Service.this;
}
}
public void onCreate() {
super.onCreate();
context = getApplicationContext() ;
}
public void onStart(Intent intent, int startId) {
... some processing is done here...
}
public IBinder onBind(Intent intent) {
return mBinder;
}
Si j'appelle startService (intention). il crée un nouveau service et fonctionne en parallèle avec l'autre service.
Si je n'invoque pas startService (intention), serviceObj.getData() rétablit la valeur null. Est-ce que quelqu'un peut m'éclairer où est-ce que je me suis trompé?
Tout type de pointeur sera très utile ..
Merci et salutations, Vinay
Merci pour la réponse. Ça m'a aidé. En ce qui concerne le service fonctionnant en parallèle à l'autre, j'ai trouvé que cela était dû à "new Intent (this.context, Service.class)". J'ai remplacé cela par "new Intent (" com.package "," com.package.service ");" Merci pour les pointeurs .. – Vinay
Vous dites "Ne pas utiliser getApplicationContext". Donc, cela s'appliquerait-il à la réponse acceptée de http://stackoverflow.com/questions/3141632/android-service-interacting-with-multiple-activities également? Je la réponse "faux"/contre les règles là-bas? – OneWorld
@OneWorld: Je ne suis définitivement pas un fan du «stick an' Activity' dans le 'Application' pour suivre le modèle de« l'activité actuelle ». Si rien d'autre, un membre de données statiques fonctionne aussi bien et avec une plus grande flexibilité. Au-delà de cela, empêcher une «Activité» d'être ramassée par les ordures est une prescription pour les problèmes. – CommonsWare