成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android兩種實現界面的刷新操作的方法

移動開發 Android
Android提供了Invalidate方法實現界面刷新,但是Invalidate不能直接在線程中調用,因為他是違背了單線程模型:Android UI操作并不是線程安全的,并且這些操作必須在UI線程中調用。 Android程序中可以使用的界面刷新方法有兩種,分別是利用Handler和利用postInvalidate()來實現在線程中刷新界面。

利用Handler刷新界面

實例化一個Handler對象,并重寫handleMessage方法調用invalidate()實現界面刷新;而在線程中通過sendMessage發送界面更新消息。

  1. // 在onCreate()中開啟線程 
  2.        new Thread(new GameThread()).start();、 
  3.   
  4.  
  5.        // 實例化一個handler 
  6.        Handler myHandler   = new Handler()  
  7.        { 
  8.               //接收到消息后處理 
  9.               public void handleMessage(Message msg) 
  10.               { 
  11.                      switch (msg.what) 
  12.                      { 
  13.                      case Activity01.REFRESH: 
  14.                             mGameView.invalidate();        //刷新界面 
  15.                             break
  16.                      } 
  17.                      super.handleMessage(msg); 
  18.               }                    
  19.        }; 
  20.   
  21.  
  22.        class GameThread implements Runnable 
  23.        { 
  24.               public void run() 
  25.               { 
  26.                      while (!Thread.currentThread().isInterrupted()) 
  27.                      { 
  28.                             Message message = new Message(); 
  29.                             message.what = Activity01.REFRESH; 
  30.                             //發送消息 
  31.                             Activity01.this.myHandler.sendMessage(message); 
  32.                             try 
  33.                             { 
  34.                                    Thread.sleep(100); 
  35.                             } 
  36.                             catch (InterruptedException e) 
  37.                             { 
  38.                                    Thread.currentThread().interrupt(); 
  39.                             } 
  40.                      } 
  41.               } 
  42.  
  43.        } 

使用postInvalidate()刷新界面

使用postInvalidate則比較簡單,不需要handler,直接在線程中調用postInvalidate即可。

  1. class GameThread implements Runnable 
  2.       { 
  3.              public void run() 
  4.              { 
  5.                     while (!Thread.currentThread().isInterrupted()) 
  6.                     { 
  7.                            try 
  8.                            { 
  9.                                   Thread.sleep(100); 
  10.                            } 
  11.                            catch (InterruptedException e) 
  12.                            { 
  13.                                   Thread.currentThread().interrupt(); 
  14.                            } 
  15.                            //使用postInvalidate可以直接在線程中更新界面 
  16.                            mGameView.postInvalidate(); 
  17.                     } 
  18.              } 
  19.       } 

 

責任編輯:張葉青 來源: feisky博客園
相關推薦

2012-10-16 09:40:38

洗牌算法

2010-10-14 14:33:15

MySQL多表聯查

2011-08-09 13:50:01

iPhone動畫UIView

2010-09-28 15:12:27

Javascript

2022-02-09 07:03:01

SpringNacos服務注冊

2010-04-25 17:34:30

負載均衡實現

2010-01-21 11:13:29

Linux桌面計算器

2020-09-23 09:24:01

堆棧開發實現

2011-06-23 09:07:16

2022-02-21 08:18:38

option編程模式

2010-07-14 10:30:26

Perl多線程

2021-12-08 10:47:35

RabbitMQ 實現延遲

2017-11-16 09:20:20

內存虛擬化技術

2010-09-17 09:37:27

Java安裝方法

2009-09-25 14:04:09

Hibernate eHibernate h

2010-11-19 11:57:15

Oracle密碼丟失

2011-03-03 17:00:37

pure-ftpdchroot

2021-10-09 09:15:01

Windows 11安全模式系統

2010-03-18 08:55:50

C#

2010-05-28 09:49:48

MySQL遠程連接
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产成人精品免费视频大全最热 | www312aⅴ欧美在线看 | 国产精品成人免费 | 美女视频黄的 | 久久91 | 日韩高清国产一区在线 | 不卡一区 | 欧美精品一二三区 | 一本岛道一二三不卡区 | 国产精品久久久久久久久久免费看 | 中文字幕黄色大片 | 国产一级大片 | 国产精品国产精品国产专区不片 | 天堂在线www| 高清不卡毛片 | 色婷婷综合久久久中字幕精品久久 | 麻豆精品国产免费 | 亚洲一区二区三区免费在线观看 | 在线小视频 | 色婷婷av久久久久久久 | 精品乱码一区二区三四区视频 | 亚洲精品无 | 黄视频欧美| 香蕉91| 韩日中文字幕 | 欧美视频免费在线 | 日本亚洲欧美 | 国产欧美一区二区三区在线看蜜臀 | 国产一区二区精品在线观看 | 伦理二区 | 国产精品成人69xxx免费视频 | 国产熟熟 | 毛片久久久 | 91超碰在线 | 成人免费看片 | 精品91久久 | 视频一区二区中文字幕 | 成人福利在线视频 | 日韩精品久久 | 色视频网站在线观看 | 久久久av一区 |