Bonjour à tous,

j'ai une activité qui lance un service, lequel effectue des taches en background.

ACTIVITE :
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
46
47
 
...
 
public class MainActivity extends Activity
{
	 MyService myService;
	 ServiceConnection myServiceConnection;
 
	 @Override
    public void onCreate(Bundle savedInstanceState)
    {	
 	super.onCreate(savedInstanceState);
 	setContentView(R.layout.application);
 
 
		//Connexion au service
	        myServiceConnection = new 
		ServiceConnection()
		{
		   @Override  
		   public void onServiceDisconnected(ComponentName name)
		   { 
		      myService = null;
		   } 
 
		   @Override  
		   public void onServiceConnected(ComponentName name, IBinder service)
		   { 
		      myService = ((MyService.MyActivityBinder)service).getMyService();
			//Méthode lancée lorsque le service est connecté
		      onServiceAvailable();
		   } 
		};
 
		Intent serviceIntent = new Intent(this, MyService.class);
 		startService(serviceIntent);
 
 		Intent bindIntent = new Intent(this, MyService.class); 
        	bindService(bindIntent, myServiceConnection, Context.BIND_AUTO_CREATE);
    }	
 
	 public void onServiceAvailable()
	 {
	         //MISE A JOUR DE L'INTERFACE
		((TextView) findViewById(R.id.valeur_adresse)).setText(String.valueOf(myService.exampleDeVariableAEcouter));
	 }
}
SERVICE :
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 
...
 
public class MyService extends Service
{
	//Déclaration des variables
	String exampleDeVariableAEcouter = 0;
	MyService myServiceS;
	private IBinder myBinder = new MyActivityBinder();
 
	public class MyActivityBinder extends Binder
	{
	   MyService getMyService()
	   {  
	      return MyService.this; 
	   } 
	}
 
	@Override  
	public IBinder onBind(Intent intent)
	{  
	   return myBinder;
	}
 
   @Override  
   public void onCreate()
   {  
      super.onCreate();
	//Lancement du thread de traitement
      thread th = new thread();
      th.execute();
   }
 
   public int onStartCommand(Intent intent, int flags, int startId) 
   {  
   	return START_STICKY_COMPATIBILITY; 
   }
 
//Méthode pour lancer le traitement des données
   	class thread extends AsyncTask<Void, String, Void>
   	{        	
		@Override
   		protected Void doInBackground(Void... inutilise)
   		{ 
   			while(true)
   			{
   				//MODIFICATION DES VALEURS DE LA VARIABLE exampleDeVariableAEcouter
				try
				{
				   Thread.sleep(1000);
				}
				catch (InterruptedException e)
				{
				   e.printStackTrace();
				}
   			}
   			return(null);
   		}
   		@Override
   		protected void onProgressUpdate(String... item)
   		{
 
   		}
 
		@Override
   		protected void onPostExecute(Void inutilise)
   		{
 
		}
 
   	}
}
Lors du lancement de l'application, l'interface est bien mise à jour, mais une seule fois. La variable exampleDeVariableAEcouter change au cours du traitement et j'aimerais que l'interface puisse se mettre à jour dès qu'elle repère une modification de la variable.

J'ai suivi le tuto de nicodr23 à la lettre (ici : http://blog.developpez.com/android23...ion_de_service), mais j'ai une erreur avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
listeners = new ArrayList<IGoogleWeatherListener>();
( IGoogleWeatherListener cannot be resolved to a type)

Quelqu'un aurait une idée ? Je galère depuis 3 jours dessus.
Merci d'avance....