亚洲今日精彩视频_精品一级黄色_免费一级A片在现观看视频_8050福利视频 - 一级免费黄色片

7*24小時應急電話:15927160396
首頁 新聞資訊 技術文章
Android界面刷新的方法

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

  Android程序中可以使用的界面刷新方法有兩種,分別是利用Handler和利用postInvalidate()來實現在線程中刷新界面。

  利用Handler刷新界面

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

  // 在onCreate()中開啟線程

  new Thread(new GameThread()).start();、

  // 實例化一個handler

  Handler myHandler = new Handler()

  {

  //接收到消息后處理

  public void handleMessage(Message msg)

  {

  switch (msg.what)

  {

  case Activity01.REFRESH:

  mGameView.invalidate(); //刷新界面

  break;

  }

  super.handleMessage(msg);

  }

  };

  class GameThread implements Runnable

  {

  public void run()

  {

  while (!Thread.currentThread().isInterrupted())

  {

  Message message = new Message();

  message.what = Activity01.REFRESH;

  //發送消息

  Activity01.this.myHandler.sendMessage(message);

  try

  {

  Thread.sleep(100);

  }

  catch (InterruptedException e)

  {

  Thread.currentThread().interrupt();

  }

  }

  }

  }

  使用postInvalidate()刷新界面

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

  class GameThread implements Runnable

  {

  public void run()

  {

  while (!Thread.currentThread().isInterrupted())

  {

  try

  {

  Thread.sleep(100);

  }

  catch (InterruptedException e)

  {

  Thread.currentThread().interrupt();

  }

  //使用postInvalidate可以直接在線程中更新界面

  mGameView.postInvalidate();

  }

  }

  }

  參考:

  Android應用開發揭秘

  Android文檔

版權所有:武漢網福互聯科技有限公司    鄂ICP備09022096號
業務QQ:23444550 客服QQ:267052100 電郵:23444550@qq.com  

鄂公網安備 42010602000905號

手機站二維碼