2012-02-18 3 views
0

진행 표시 줄을 만들었지 만로드 애니메이션을 볼 수 없습니다. 냉동 됐어. 항목을 클릭하면 진행률 표시 줄을 표시하고 작업 표시 줄과 고정되지 않은 표시를 보려고합니다.진행 표시 줄이 업데이트되지 않습니다.

다음
 lv.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 
      if (((TextView) view).getText().equals("Zman-New (rus)")){ 

       progDailog = ProgressDialog.show(testLoading.this, "Getting data", "Loading...",true,true); 
       new GetDataTask("stringurl.xml").execute(); 

       } 

가 GetData의

답변

0

그냥 진행이 시도 테스트하려면

private class GetDataTask extends AsyncTask<Void, Void, Integer> { 
String url; 
GetDataTask(String url){ 
    this.url=url; 
} 
@Override 
protected Integer doInBackground(Void... params) { 
     //do all your backgroundtasks 
     intent = new Intent(rusNewsP.testLoading.this, rusNewsTest.rusNewsActivite.class); 
     intent.putExtra("url",url); 
     startActivity(intent); 
     finish(); 
     return 1; 
} 

@Override 
protected void onPostExecute(Integer result) { 

     //finish up (or close the progressbar) 

     //do something with the result 
    progDailog.dismiss(); 
     super.onPostExecute(result); 
} 
} 
다음과 같습니다 : 여기 내 코드입니다

private class Initialize extends AsyncTask<Short, Short, Short> { 
      ProgressDialog pd; 



@Override 
protected void onPreExecute() { 
    pd = new ProgressDialog(yourlass.this); 
    pd.setMessage("test"); 
    pd.show(); 
    super.onPreExecute(); 
} 

@Override 
protected Short doInBackground(Short... params) { 
    try { 
    synchronized (this) { 
     wait(2000); 
    } 
    } catch (InterruptedException ex) { 
    } 
    return null; 
} 

@Override 
protected void onPostExecute(Short result) { 
    pd.dismiss(); 
    super.onPostExecute(result); 
} 
} 

그리고 doInBackground에서 startActivity를 호출하지 않습니다 - 방법. 대신 OnPostExecute에서 호출하십시오. GUI 조작은 doInBackground에서 수행되지 않아야합니다.

0

시도 시작에과 UI 스레드에서 Activity직접 빨리 될 것입니다.
그래도이 방법을 원한다면 onPostExecute 메서드에서 시작하십시오.
doInBackground.

protected void onPostExecute(Integer result) 
{ 
    //do something with the result 
    progDailog.dismiss(); 
    intent=new Intent(rusNewsP.testLoading.this,rusNewsTest.rusNewsActivite.class); 
    intent.putExtra("url",url); 
    startActivity(intent); 
    finish(); 
} 

그리고 ... 그것이 ProgressDialog 처음 기각 할 곳 doInBackground(Short... params) 완료, 그것은 onPostExecute에 직접 방법을 반환합니다 ..after 해서 ProgressDialog을 기각 super.onPostExecute(result);를 호출하지 않습니다 생성자을 실행하면 다시 이 기각되어 캐치되지 않은 예외로 인해이 해제 된 ProgressDialog을 다시 시도합니다.

관련 문제