<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    饒榮慶 -- 您今天UCWEB了嗎?--http://www.ucweb.com

    3G 手機開發網

       :: 首頁 :: 聯系 :: 聚合  :: 管理
      99 Posts :: 1 Stories :: 219 Comments :: 0 Trackbacks
    原創文章轉載須留下
    http://www.3geye.net/?3/viewspace-2925 鏈接


    根據Android SDK api文檔說明
    invalidate 方法是用來更新視圖(View)的方法,不過這東西的用法比較古怪
    invalidate 方法如果你直接在主線程中調用,是看不到任何更新的。
    如果跟線程結合使用的話
    比如在下面的代碼中就會拋出異常

    UIThread implements Runnable{
    public void run(){
      invalidate();
      }
    }
    上面的代碼會拋出Only the original thread that created a view hierarchy can touch its views。
    怎么樣解決上面的問題呢,如果你有兩個View,你需要一個View用來顯示當前的狀態,一個Thread去下載網絡數據
    或者是讀取文件等,這些數據讀取完畢后你要更新View到當前屏幕上怎么辦呢。看看下面的代碼,也許可以幫助你

    第一種解決方案是:
    class UIUpdateThread implements Runnable{

                public void run() {
                    try {
                        Thread.sleep(1000*5);
                        mHandler.post(mUpdateResults);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                   
                }
               
                 final Handler mHandler = new Handler();
                    final Runnable mUpdateResults = new Runnable() {
                        public void run() {
                            invalidate(); //更新視圖
                        }
                    };
               
    }
    你必須實現一個Handler.然后再你下載數據的線程中放上一個mHandler.post(mUpdateResults);這樣就可以了。

    第2中方案比較簡單

    LoadDataThread implements Runnable{
    public void run(){
       doLoadData();
       mHandler.sendMessage(mHandler.obtainMessage()); //這里系統會自動調用handleMessage;這樣就可以更新視圖了
       }
    }

      Handler mHandler = new Handler(){
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                // 這里處理視圖需要更新的代碼。
                       
            }
       };
      
       總結,發現Google Android 好像有點弱智了。Api這么難用,不如J2ME簡單啊。
      
      
     對于postInvalidate用法來說就相對簡單點了直接調用就OK了,這里就不詳細說了。
      

    爬蟲工作室 -- 專業的手機軟件開發工作室
    3G視線 -- 專注手機軟件開發
    posted on 2008-03-05 16:13 3G工作室 閱讀(7202) 評論(1)  編輯  收藏

    Feedback

    # re: Android invalidate 與postInvalidate用法 2008-03-05 22:06 魔域私服
    http://www.zhaomysf.com.cn  回復  更多評論
      


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 1000部禁片黄的免费看| 特级做A爰片毛片免费看无码| 99人中文字幕亚洲区| 一区二区三区在线观看免费| 免费播放在线日本感人片| 亚洲女人被黑人巨大进入| 国产精品亚洲天堂| 日韩免费一级毛片| 国产亚洲欧美日韩亚洲中文色| A毛片毛片看免费| 亚洲中文字幕久久精品无码喷水| 亚洲精品在线电影| 国产在亚洲线视频观看| 免费一看一级毛片全播放| 欧洲乱码伦视频免费国产| 免费在线一级毛片| 中文无码日韩欧免费视频| 国产啪亚洲国产精品无码| 两个人看www免费视频| 久久亚洲私人国产精品vA| 青娱分类视频精品免费2| 亚洲精品美女久久7777777| 无码人妻丰满熟妇区免费| 亚洲av色影在线| 毛片无码免费无码播放| 亚洲一区二区三区免费视频| 3344永久在线观看视频免费首页| 在线视频免费国产成人| 亚洲精品天堂成人片AV在线播放| 免费人成网站在线观看不卡| 在线观看午夜亚洲一区| 亚洲精品伦理熟女国产一区二区| 久久免费线看线看| 免费无码又爽又刺激高潮| 精品国产日韩亚洲一区在线| 国产精品免费看久久久久| kk4kk免费视频毛片| 亚洲国产精品成人久久| 欧洲乱码伦视频免费| 亚洲人成精品久久久久| 18级成人毛片免费观看|