Reputation: 64854
I have a code sample that uses this function to run a thread runOnUiThread
. why and when may we need to use it?
What about to use AsyncTask
class, what's the pros
and cons
??
Upvotes: 19
Views: 33786
Reputation: 67286
You have to use runOnUiThread()
when you want to update your UI from a Non-UI Thread. For eg- If you want to update your UI from a background Thread. You can also use Handler
for the same thing.
From the Docs -
Runs the specified action on the UI thread. If the current thread is the UI thread, then the action is executed immediately. If the current thread is not the UI thread, the action is posted to the event queue of the UI thread.
Syntax -
Activity_Name.this.runOnUiThread(new Runnable() {
@Override
public void run() {
// your stuff to update the UI
}
});
Update -
AsyncTask -
If you want to do some
Network operation
or anything that blocks your UI in that case AsyncTask is best options. There are several other ways for performing the same Background Operations as you can useService
,IntentService
also for doing Background Operations. Using AsyncTask will help you doing your UI work and also won't block your UI until your background Operation is going on.
From the Docs -
AsyncTask enables proper and easy use of the UI thread. This class allows to perform background operations and publish results on the UI thread without having to manipulate threads and/or handlers.
Upvotes: 23
Reputation: 133
To update userinterface
from thread you need to use runOnUiThread
. But using asynctask
is better than using runonuithread
. android-runonuithread-vs-asynctask this link can help you
Upvotes: 1