Correct way to receive bulk data from a server in Android?

Ok so to explain I have server in Java that receives data from a C++ program that I have no control over. So the data is transferred over TCP/IP and the Java server just receives it. The volume of incoming data is huge and it comes at a very fast rate, just imagine a terminal printing loads of lines really fast.. I don’t need to get all of it, just as much as I can would be great..

Now I need to send that data to an android device and display it. I have no idea what is the best approach to so this.

I am currently pinging the server from my android device every 50ms using an executor. Then I use a handler to display the data. I have already posted a question with code here: related question.

Obviously the android app will need to ping it while the app is running so I can’t avoid the while(true) scenario.

I have read about 100000000 ways to do concurrency in Android, and I do not know what to choose for this.

  • I tried simple Threads, they were to hard to manage.
  • I am now running a ExecutorService
  • I also read about ScheduledExecutorService, but they need a time duration right ? My app can be running for 5 hours or 5 minutes or 5 years.
  • I read about HandlerThreads too, but I am not sure they are ideal for this scenario.

Any help would be great.