日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android中view刷新界面,Android view invalidate()使用

發布時間:2025/3/19 Android 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android中view刷新界面,Android view invalidate()使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android提供了Invalidate方法實現界面刷新,但是Invalidate不能直接在線程中調用,因為他是違背了單線程模型:androidUI操作並不是線程安全的,並且這些操作必須在UI線程中調用。

invalidate()是用來刷新View的,必須是在UI線程中進行工作。在修改某個view的顯示時,調用invalidate()才能看到重新繪製的界面。invalidate()的調用是把之前的舊的view從主UI線程隊列中pop掉。一個Android 程序默認情況下也只有一個進程,但一個進程下卻可以有許多個線程。

在這麼多線程當中,把主要是負責控制UI界面的顯示、更新和控件交互的線程稱為UI線程,由於onCreate()方法是由UI線程執行的,所以也可以把UI線程理解為主線程。其餘的線程可以理解為工作者線程。

invalidate()得在UI線程中被調動,在工作者線程中可以通過Handler來通知UI線程進行界面更新。

postInvalidate()在工作者線程中被調用

用invalidate()刷新界面new Thread(){

@Overridepublic void run() {

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

super.run();

runOnUiThread(new Runnable() {

@Override

public void run() {

mRootView.invalidate(UPDATE_MODE_FULL_GC16);

}

});

}

}.start();

如果在 oncreate 直接呼叫是無法動作的

需用 Thread 去跑

總結

以上是生活随笔為你收集整理的android中view刷新界面,Android view invalidate()使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。