1. 程式人生 > >Android將任務拋到UI執行緒的幾種方法

Android將任務拋到UI執行緒的幾種方法

有的時候,我們希望能將任務拋回到UI執行緒去做,比如修改介面。如果當前沒有處在UI執行緒,那應該怎麼把任務拋到UI執行緒去呢?

以下是Android系統提供的3個將任務拋回UI執行緒的方法

  • Activity.runOnUiThread(Runnable)
  • View.post(Runnable)
  • View.postDelayed(Runnable, long)

例如,在某一個執行緒中,通過View.post()方法將任務拋回UI執行緒

public void onClick(View v) {
    new Thread(new Runnable() {
        public void
run()
{ final Bitmap bitmap = loadImageFromNetwork("http://example.com/image.png"); mImageView.post(new Runnable() { public void run() { mImageView.setImageBitmap(bitmap); } }); } }).start(); }

如果你不能判定,當前是不是UI執行緒,可以用如下兩個方法:

方法一:使用Looper類判斷,如果相等則是UI執行緒

Looper.myLooper() == Looper.getMainLooper()

方法二:通過檢視Thread類的當前執行緒

Thread.currentThread() == Looper.getMainLooper().getThread()