The method execute
returns the AynscTask
itself, you need to call get
:
output =
new getURLData()
.execute("http://www.example.com/call.php?locationSearched=" + locationSearched)
.get();
This will start a new thread (via execute
) while blocking the current thread (via get
) until the work from the new thread has been finished and the result has been returned.
If you do this, you just turned your async task into a sync one.
However, the problem with using get
is that because it blocks, it needs to be called on a worker thread. However, AsyncTask.execute()
needs to be called on the main thread. So although this code could work, you may get some undesired results. I also suspect that get()
is under-tested by Google, and it is possible that they introduced a bug somewhere along the line.
Reference: AsyncTask.get