2012-02-18 27 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(); 

       } 

は函

答えて

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); 
} 
} 

そしてdoInBackgroundstartActivityを呼び出すことはありません - 方法。代わりに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(); 
} 

そして... doInBackground(Short... params)を完了..afterprogressDialogを却下super.onPostExecute(result);を呼び出すことはありません、それはProgressDialog初めてを解任しますonPostExecuteメソッドに直接戻りますコンストラクターを実行します。ProgressDialogは既にが棄却され、キャッチされていない例外が発生します。

関連する問題