Bonjour,
Dans l'une de mes méthodes qui doit renvoyer un objet de type InputStream, je déclare cet objet (inputStream) et j'instancie un thread et je souhaiterais pouvoir modifier la valeur de l'inputStream à l'intérieur de cet objet (thread).
Le problème est que si je ne déclare pas mon inputStream en final, je n'arrive pas à y avoir accès à l'intérieur de mon thread mais dans ce cas, il est final et donc par conséquence, pas modifiable puis je ne souhaite pas créer une variable de classe inputStream puisque ma classe (mapper) n'est pas composée d'un inputStream, je suis donc bloqué et mes connaissances en Java sont limitées même si j'essaie d'apprendre..
Voici ma méthode :
Si vous avez une idée, je suis preneur.
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 private InputStream getInputStream(String url) throws MalformedURLException, IOException, NullPointerException { final String strUrl = url; InputStream inputStream = null; Thread thread = new Thread(){ public void run(){ Looper.prepare(); // Connexion au serveur pour communiquer avec DefaultHttpClient client = new DefaultHttpClient(); HttpConnectionParams.setConnectionTimeout(client.getParams(), 15000); HttpResponse response; HttpEntity entity; try{ HttpPost post = new HttpPost(strUrl); post.setHeader("Content-Type", "application/x-www-form-urlencoded"); // Passage des parametres par le script en POST post.setEntity(new UrlEncodedFormEntity(null, HTTP.UTF_8)); // Recuperation du resultat du script response = client.execute(post); entity = response.getEntity(); inputStream = entity.getContent(); inputStream.close(); if(entity != null){ entity.consumeContent(); } } catch(NullPointerException e) { throw e; }catch(Exception e){ Log.e(this.getClass().getName(), "Exception à l'ajout d'une règle", e); } Looper.loop(); } }; thread.start(); return inputStream; }
Partager