Android :: Whether To Use Service Or Thread For Http Connection?
Jul 5, 2010
I am a newbie in android and i had a question whether i should use a service or thread for http connection and what will be the advantage of using a service over a thread or viceversa. Please help me out with this.
View 13 Replies
Aug 2, 2010
I have an application that is performing HTTP Requests (specifically calling the FogBugz API) when the user clicks certain buttons. Right now, I am just creating a service when the application starts, and then calling different methods in that service to complete requests. However, when I do this, there is the usual hang in the UI thread. I have looked at AsyncTask, but am not sure it will do what I want to accomplish. Because I need to instantly parse the XML that the HTTP Request returns, I need to have a process that is able to return this data to the UI thread. Will ASyncTask be able to accomplish this, or is there some other way.
View 1 Replies
View Related
Nov 20, 2010
what I'm trying to do here is implement something like a peer-to-peer client. Being that, it will start a client thread and a server thread.I know Services themselves run in the main GUI thread, so I'll have to start a couple of independent threads (or Asynctasks?) for each server and client. The only thing I'm not so sure about is if I'll better have 1 Service starting 2 threads, or maybe 2 services, each one of them starting their own thread.
View 2 Replies
View Related
Mar 24, 2010
I am using a DefaultHttpClient and a ThreadSafeClientConnManager to share the httpClient across threads. That part is working well. However, when I execute an HttpPost in one thread, and call httpPost.abort() from another. It does not return immediately and continues blocking until the socket timeout is reached in most cases. Am I missing something else? I've tried using: connectionManager.closeIdleConnections(30, TimeUnit.SECONDS); connectionManager.closeExpiredConnections();
View 2 Replies
View Related
Jan 18, 2010
I need to send asynchronous calls to the server. During network connection this works fine. How ever if i disable my LAN from Network connections android will through a socket exception after the specified timeout for that particular call. Now the issue that i face is the time out happens in a synchronous manner. Though both the calls has been started in a thread the timeout is not happening at the same time. If i keep the timeout as 20sec i am getting a socket exception for the first call after 20 sec and after the next 20 sec i get the timeout for the next call. Why is this happening..? I am not opening two connections asynchronously in this case. I am attaching a sample code that can replicate the above scenario. Code...
View 9 Replies
View Related
Oct 14, 2010
I'm making an http request. I'm on a platform (android) where network operations often fail because the network connection might not be immediately available. Therefore I'd like to try the same connection N times before completely failing. Was thinking of something like this:
DefaultHttpClient mHttp = ...;
public HttpResponse runHttpRequest(HttpRequestBase httpRequest)
throws IOException
IOException last = null;
for (int attempt = 0; attempt < 3; attempt++) {
try {
HttpResponse response = mHttpClient.execute(httpRequest);
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200) {
return response }
} catch (IOException e) {
httpRequest.abort();
last = e;
throw last;
I'm mostly worried about the connection being in some state which is invalid on subsequent retries. In other words, do I need to completely recreate 'httpRequest', should I avoid calling httpRequest.abort() in the catch block, and only call it in the final failure?
View 2 Replies
View Related
Aug 17, 2010
I am using org.apache.http.*; API's to make HTTP Post Connections over Internet from the Android Application. I added the Internet Permissions in the Manifest file and it works fine. Now i want my application to make the same HTTP requests over WiFi network through which the handset is connected.
Do i need to make code changes to achieve this? Do i need to add some permissions? as i am unable to make requests...
View 1 Replies
View Related
Mar 10, 2010
is there a way to force a connection (http) to go over OTA (Over-The- Air) even if you have a wifi connection?
View 3 Replies
View Related
Dec 22, 2009
Do you know how to set Content-Type on HttpURLConnection? Following code is on Blackberry and I want the Android equivalent:
connection.setRequestProperty("content-type", "text/plain; charset=utf-8");
connection.setRequestProperty("Host", "192.168.1.36");
connection.setRequestProperty("Expect", "100-continue").
View 4 Replies
View Related
Sep 29, 2010
I need to make HTTP request on Android using GSM connection, not Wifi. My current solution is to disconnect from all wi-fi connections and perform a request. Is there any better solution? I could not find any relevant methods in the API (I looked in package org.apache.http, but it seems it is completely unaware of what type of connection should be used).
View 1 Replies
View Related
Apr 26, 2009
I have set up proxy in the sdk emulaotor and can access internet via the proxy in the browser. but this does not work for my http connection application, it gives "Unknown host exception" i have used -dns-server option when launch the app.
View 2 Replies
View Related
Sep 6, 2010
I'm facing an annoying problem here. My application is connected to a server that sends some data from time to time. It's some kind of eventing server. In order to receive data, I'm connecting to the server with an HttpURLConnection, retrieve the response InputStream and loop on it with the read method. The connection is always open. The distant server is cutting the connection every 5 minutes (for test purpose). When connection is closed, my application has to reconnect again. We detect a Connection Reset by Peer exception when the server closes the connection. The problem is that most of the time, I never receive the Connection Reset by Peer exception. So my application can't know that is has to reconnect and it's stucked on the read instruction. The InputStream.Read() method shouldn't always raise an exception if the connection is closed? What can I do to always detect Connection Reset by Peer exception?
View 15 Replies
View Related
Dec 21, 2009
I am facing with problem related Http Connection.
MY code...
This code can't download data completely.
For example :
Total size to read : 13901 bytes
Above code can read size : 12937 bytes
What is wrong here?
View 2 Replies
View Related
Sep 8, 2010
I've been working on an app that uses both GET and POST requests to Web Services. The GET requests are no problems but the POST requests are killing me. I've tried 2 different scenarios in the code. The first looks like this...
CODE:......
This code gets this result for me..."Bad Request (Invalid Header Name)"
Now here's my second piece of code...
CODE:.....
This gives me an entirely different result. It's a long garbled mess of xml and SOAP that does have a SOAP Exception mentioned in it..."Server was unable to process request. --- System.Xml.XmlException: Data at the root level is invalid. Line 1, position 1." Now, can anyone shed any light on what I am doing wrong.
View 1 Replies
View Related
Aug 26, 2010
How to create an Http Connection to retrieve a web page content to my android? Please post example code for this.
View 1 Replies
View Related
Aug 4, 2009
I want to Download image from Server using Http Connection and at same time i want to show ProgressDialod till is not Downloaded i dont undestand.
View 3 Replies
View Related
Feb 5, 2010
I am trying to create HTTP connection using AsyncTask class.
Is it possible to create HTTP connection ?
Can you suggest sample source code?
View 2 Replies
View Related
May 6, 2009
I've been researching how to best implement a service which performs a network transaction and returns data to the caller.
Clearly, this needs to happen on its own thread which means some form of async response. I can see at least three ways of doing this--some more complex than others. In the descriptions below, C is the caller, S is the service.
1) C wraps a Handler in a Messenger object, adds this to an Intent. C then calls startService with this intent. S extends IntentService which runs the Intents received in a worker thread. S then sends a message to C via the Messenger. This has the benefit of not requiring any of the async binding process or making an IDL interface that needs to be compiled into C. This seems to be the closes to a Handler-based response mechanism of Local Services.
2) C binds to S and then uses AsyncTask<> to make a blocking call to S. S performs the network transaction and returns the data in the return value or an out parameter. This requires the async binding process, but does not require a callback function since the inter- thread communications is handled by AsyncTask<> and the worker thread is in C's context.
3) Make the function called in S be completely asynchronous. S defines two interfaces: IMyService and IMyServiceCallback. S implements IMyService.Stub. C implements IMyServiceCallback.Stub. C binds to S then calls S via IMyService, passing its IMyServiceCallback binder. S spins up a worker thread and returns immediately. S then calls the callback when it has completed the network transaction.
I am asking for advice on which methods are most appropriate. I do not need the the service running constantly, only when the web transaction is required. C does not use S all the time--definitely don't want to bind during C's onCreate. However, I would like the time from when C determines it needs to use S to getting the results back to be as quick as possible (i.e. adding minimal latency to the already latent network access).
Is there any preference to having the worker thread in C or in S? Are there any significant problems with option 1?
View 11 Replies
View Related
Nov 5, 2010
GI am trying to do a http post to a php script. the method works if I place it in the onCreate event of the application but gets a ConnectionTimeOut error when it tries to execute it from the service.
Here is an example of my method
CODE:...................
I have no idea why the service would get a time out error but the application activity would not.
View 5 Replies
View Related
Feb 9, 2010
I have a Service for my Android app that performs HTTP calls. The Service stores cookies in a CookieStore. I am trying to find a way to persist the CookieStore but I haven't been successful. I don't want the user to log in every time to receive a new CookieStore.
I tried to use SharedPreferences to store the CookieStore as a string, but I can't re-construct the CookieStore with a String.
Has anyone else had success in persisting a CookieStore?
View 1 Replies
View Related
Jan 18, 2010
I am new to Java and Android.I would like to retrieve remote data and display it within my activity. To prevent tying up to UI, I understand that I can do this in another thread. (I thought I could just-as-well fetch this remote data from within a service, but that appears to tie up the UI thread also). So now I'm beginning to think I need to either run the logic from a new thread within a service, or run a service within a new thread. But which? I have found many examples online of running new threads or services, but I have yet to find an example of both at the same time.
View 7 Replies
View Related
Aug 4, 2010
I want to write a separate Thread within my application (to do Bluetooth connection). Any idea where I can find any reference for help to write Threads in Android? I searched online but could not find any proper reference.
View 5 Replies
View Related
Jun 12, 2010
In Virgil Dobjanschi's talk, "Developing Android REST client applications" (link here), he said a few things that took me by surprise. Including:
Don't run http queries in threads spawned by your activities. Instead, communicate with a service to do them, and store the information in a ContentProvider.
Use a ContentObserver to be notified of changes.
Always perform long running tasks in a Service, never in your Activity.
Stop your Service when you're done with it.
I understand that he was talking about a REST API, but I'm trying to make it fit with some other ideas I've had for apps. One of APIs I've been using uses long-polling for their chat interface. There is a loop http queries, most of which will time out. This means that, as long as the app hasn't been killed by the OS, or the user hasn't specifically turned off the chat feature, I'll never be done with the Service, and it will stay open forever. This seems less than optimal.
Long question short:
For a chat application that uses long polling to simulate push and immediate response, is it still best practice to use a Service to perform the HTTP queries, and store the information in a ContentProvider?
View 1 Replies
View Related
May 26, 2009
I want to download some data from internet.It should not block main UI thread. I know both thread and service can handle the work. What is the difference between them?
View 4 Replies
View Related
Oct 6, 2010
I have an application which requires networking service. I took on LWUIT4IO and adjusted it to my needs so now i have a network queue that can run one or more network threads.Now, my application is based on single root activity that spawns other child activities as needed (it's a reservation center for vacations, car rental etc.. each in it's own activity). The network is common to all and should be used by all activities. the network thread requires, basically, a callback to notify it's finished and return the result (input stream or byte array) .At first i thought that i should use a service instead of a singleton that will be started in the root activity(the service will also be started in the root activity), however working with a local service is problematic for me: 1. no callbacks which makes me use intents to encapsulate the request esponse in intents time consuming, also since there is not single point of listening (i have to use BroadcastReceivers)i have to add a calling class name or some other identifier so the sender of the request will know it's for him, i think this is also a waste of time and resources since i need only one listener.
i think i CAN use callbacks if i use Binder object to return local instance of my Service and then use the queuing method directly, this is problematic for me as acquiring Binder object is asynchronous and i need it 'on the spot' 3. I thought of using a static instance of the service and null it in onDestroy of the service, but if i use that way, i'm not so sure i need a service... 4. i saw a small answer in stackoverflow about inheriting application and putting whatever member you need there so when you use getApplication you get this instance and then you can retrieve whatever you want, is this even advisable ?
View 5 Replies
View Related
Dec 16, 2009
I have two apps that use a service to upload and download files and data. I've noticed that when the service gets very busy, it can cause the UI to block, up to the point that Android shows a "force quit/ wait" popup. In order to avoid that, I run tasks in a service at a lower priority. This way, the service will never cause the UI to hickup. Also, the service stops if the app hasn't been used for a certain number of minutes. I don't want to keep resources if the user isn't using my app.I have found that some of my users run apps that run services permanently at normal priority. Such a service starts at phone switch on, and keeps running indefinitely, downloading vast amounts of data. My policy of being nice to other apps doesn't pay off: these agressive third party services push my service away so it never gets anything done. As one of my users told me, my app has hickups, until he kills the service of this app X, after which my app runs smoothly, snappy, and fast.
My question is, should I be nice to other apps and to the UI in my own app, or should I just run a service and agressively take all resources I need - or don't need? This is one issue where Android is different from iPhone. We can run services, but by doing so, we can cause damage to other peoples apps. Of course, my "question" doesn't require an answer. I'm just curious after what other people think, what your experience here is.
View 5 Replies
View Related
Nov 14, 2010
I am developing an Android app and I am doing some heavy work (bringing data from an online web page and parsing it to store in database) in a service. Currently, it is taking about 20+ mins and for this time my UI is stuck. I was thinking of using a thread in service so my UI doesn't get stuck but it is giving error.
View 1 Replies
View Related
Jun 23, 2010
I am starting to develop a new app and I am a bit confused about the structure I need to give it.I need to react to broadcast intents, so I placed a broadcast received in the manifest. Every single intent produces an action to be performed. Now the first question: should I start a service (maybe with non_sticky option?) or should I start a thread (or an async task) directly from the broadcast receiver? If I start a service, should I do all the stuff in its body, or should it start a thread. I should do the heavy job in a thread if there are time consuming operations, but what if the gui of my application is just an activity with the options and a button to start the service. What is the point in keeping the main thread busy? Do I risk to be killed for not being responsive? I read here and there that I can update the gui from a background thread. Can I do that even if it is started from a service? The AsyncTask's onProgressUpdate is said to run in the application main thread, but if the application is made of different activities, who tells me which activity is the user looking at while the thread is doing all its long work? The user could change activity in the meanwhile and then the update would be unuseful.I know it's (quite) a lot of questions, but I need to get some clarifications before taking the wrong path.
View 5 Replies
View Related
Sep 16, 2010
My IntentService is blocking my UI thread and I wanted to find out why. So I turned on profiling in the onStartCommand method of the IntentService and turned it off at the end of the onStartMethod. The working being done in between is web access with the Apache HTTP client.According to the profiler, the onStartCommand method of the IntentService is running on the main thread, not in a worker thread. Any idea what could cause this behavior?
View 3 Replies
View Related
Jul 27, 2009
i have a little frontend showing a list of items that it will retrieve from a service. I want that service to be started in a separate thread.so the UI is still responding to user interaction while waiting for that service to call a callback method. What is the best way to start the service in a detached thread?
View 6 Replies
View Related