2010-03-01 60 views
0

朋友,在android中使用線程處理進度相關的問題!

我使用以下代碼來顯示andorid活動的進度,當我調用web服務方法getposts它顯示進度。但是當serivce調用完成時,我的應用程序會崩潰。

請指導我正在做什麼錯誤或以其他方式實現此目標?

mProgressStatus = 0; 
    Thread th=new Thread(new Runnable() { 
    public void run() { 
    if (mProgressStatus < 100) { 
    myProgressBar.setVisibility(View.VISIBLE); 
    } else { 
    myProgressBar.setVisibility(View.GONE); 
    } 
    } 

    }); 


    th.start(); 

    results = p.GetPosts(p, PageSize, adap.getCount()); 

    mProgressStatus=100; 

th.stop();

+0

你可以發佈任何日誌被執行? – Macarse 2010-03-01 11:16:33

+0

嘗試在新線程內創建進度條。 – Macarse 2010-03-01 13:34:12

回答

0

所以,如果你的應用程序崩潰了,也許你應該先看看錯誤消息?或者至少爲我們提供。

(A提示:我看了你們三個職位今天,你總是有你的代碼粘貼的第一/最後一個行的麻煩,請檢查你的代碼粘貼您提交問題之前......)

+0

錯誤/ AndroidRuntime(1519):android.view.ViewRoot $ CalledFromWrongThreadException:只有創建視圖層次結構的原始線程可以觸及其視圖。 – UMAR 2010-03-01 12:13:18

0

你可以嘗試使用runOnUiThread,如果你是在一個活動類

mProgressStatus = 0; 
    MyActivity.this.runOnUiThread(new Runnable() {}); 
     public void run() { 
      if (mProgressStatus < 100) { 
       myProgressBar.setVisibility(View.VISIBLE); 
      } else { 
       myProgressBar.setVisibility(View.GONE); 
      } 
     } 
    }); 

一切有關UI已經在UI線程