非UI线程可以去刷新UI吗(timertask调用progressbar的setProgress的特例)
今天我qq群里面的大漠同学问了这样一个问题,先看看他粘贴的源代码如下:
private synchronized void refreshProgress(int id, int progress, boolean fromTouch) { if (mUiThreadId == Thread.currentThread().getId()) { doRefreshProgress(id, progress, fromTouch); } else { RefreshProgressRunnable r; if (mRefreshProgressRunnable != null) { // Use cached RefreshProgressRunnable if available r = mRefreshProgressRunnable; // Uncache it mRefreshProgressRunnable = null; r.setup(id, progress, fromTouch); } else { // Make a new one r = new RefreshProgressRunnable(id, progress, fromTouch); } post(r); } }