Use Handler and send Message.
Force to run on UI thread.
new Thread() {
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
// Update UI here
}
});
}
}.start();
When I used Handler, the Android Studio warned me that it might cause leak, so I chose to use solution 2.