Android’s UI components are not thread safe so one may need to update Views or other UI components from a secondary thread when returning from an asynchronous database query or a web service call. If you run the code from a secondary thread you might see that the code crashes almost on each try.
Below you can find two methods on how can one run a code on the main/UI thread on android:
1. runOnUIThread Activity’s method
runOnUiThread(new Runnable(){
public void run() {
// UI code goes here
}
});
2. Handler
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
public void run() {
// UI code goes here
}
});
As a note, you might want to use one of the two methods whenever you want to update the UI like setting a text on a TextView, updating colors on views or other UI related stuff. Otherwise, the application might crash because the UI classes on Android are not thread safe.
