欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android 實現(xiàn)界面刷新的幾種方法

 更新時間:2016年11月11日 10:52:03   投稿:lqh  
這篇文章主要介紹了Android 實現(xiàn)界面刷新的相關資料,這里提供了幾種方法及實例代碼,具有一定的參考價值,需要的朋友可以參考下

Android 界面刷新

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

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

利用Handler刷新界面

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


    // 在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;

              //發(fā)送消息

              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應用開發(fā)揭秘

Android文檔

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

最新評論