File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Android and the fly likes Multi-threading Android Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Mobile » Android
Bookmark "Multi-threading Android" Watch "Multi-threading Android" New topic
Author

Multi-threading Android

Renjith Mohan
Ranch Hand

Joined: Nov 28, 2008
Posts: 65

I have a server call to fetch JSON response. Here is the code snippet.


convertStreamToString(InputStream) read json text from the stream and returns a string text. For holding the state of the user session, same httpClient reference is being used.



The problem arises when a service starts working. It accesses the httpclient object and in turn InputStream instance. By the time, the user moves to other screen, putting service to run background. Exception is thrown when InputStream already in use is called for.



The reason being, the socket is still used by the Service class. I have heard of ThreadSafeClientConnManager class. However, not really sure if it suits in here.

Any thoughts?

Let me know in case you need more details.

Thanks in advance!
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41125
    
  45
Since the javadocs don't mention that DefaultHttpClient is thread-safe, you should assume that it is not. Use a separate instance for each concurrent client.


Ping & DNS - my free Android networking tools app
Renjith Mohan
Ranch Hand

Joined: Nov 28, 2008
Posts: 65

Yes I am. I use AsyncTask for each function. The issue seems to be here



I am not creating new HttpClient instance for every server operation. Instead use the same instance to hold user session details. On the other side, ThreadSafeClientConnManager allows me have a multi threaded environment. How could I manage user session?

Thanks in advance!
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41125
    
  45
How could I manage user session?

By using separate HttpClient objects for each user.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Multi-threading Android
 
Similar Threads
Sending a jason object via Post
JSON problem
Dispatch[/ActionName ] to method method1 returned an exception
Struts and JSON
Problem in posting json data from android