ScheduledExecutorService running a couple of scheduleAtFixedRate
Your code is not thread-safe.
The Handler.run() method creates two services which will end up being deparate threads.  These threads are accessing and updating the neededDataList shared variable without any synchronization.  This could lead to unpredictable behavior, including the service that is reading the list seeing stale values.
Also, this code won't compile because the executeTask method is not defined.