Home » Android » Doing UI task in doinbackground() in Android

Doing UI task in doinbackground() in Android

Posted by: admin June 15, 2020 Leave a comment

Questions:

Is there a way to do UI task in the doinbackground() of the AsyncTask. I am well aware it is better to do it in onPostExecute method. But in my case since I am need to use a reusable alert, being able to access the UI in my doinbackground would save me a lot of time. That is, I need to tweak the code in 46 places but being able to do this in the doinbackground will need the change in just one place.

Thanks in advance

How to&Answers:

Hope this will solve your problem

    onPreExecute() {
       // some code #1
    }

    doInBackground() {
        runOnUiThread(new Runnable() {
                    public void run() {
                        // some code #3 (Write your code here to run in UI thread)

                    }
                });
    }

    onPostExecute() {
       // some code #3
    }

Answer:

Other than updating UI from onPostExecute(), there are 2 ways to update UI:

  1. From doInBackground() by implementing runOnUiThread()
  2. From onProgressUpdate()

FYI,

onProgressUpdate() – Whenever you want to update anything from doInBackground(), You just need to use publishProgress(Progress...) to publish one or more units of progress, it will ping onProgressUpdate() to update on UI thread.

Answer:

you could utilize onProgressUpdate rather

Docs