title: Android: Most efficient way to periodically (in the background) open tcp connection for ~2 minutes
body: <p>I'm working on Android application that sends periodically (every 5-10 minutes, user dependent) requests to some server. The server performs heavy calculation and sends response/data back after ~2 minutes.</p>
  
  <p>I want to know what is the most efficient way - mainly in battery life, to do this.</p>
  
  <p>I'm in the middle of writing the application, and right now, I plan to run the application as a service that periodically opens tcp connection to the server, and then waits for response (just keep the tcp connection open), and then closes the connection.</p>
  
  <p>I believe that there are better ways to do this (1. run job periodically in the background. 2. manage tcp connections where there is a client-request and response from the server only after 2 minutes.). I searched in the internet for such things, but couldn't find such a case (mainly about the tcp connection management problem). 
  Again, my main interest is in battery life.</p>
  
  <p>I have to mention that in my case, there is no option to use solutions like GCM (the client sends request, the server sends notification, the client pulls the response). Therefore, I believe that I must use tcp (or udp) connection, and I just want to know how to do this most efficiently.</p>
  
  <p>Any advice?</p>
  
  <p>By the way, what is the cost of such application in battery life?</p>