you should not execute time-consuming operations in UI thread