handle thread and ui
runOnUIThread