我创建了一个进度条但我看不到加载动画。它冻结了。我想在单击项目时显示进度条,然后看到工作栏没有冻结。这是我的代码:
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
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);
}
}
答案 0 :(得分:0)
如果您只想测试进度,请尝试以下操作:
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);
}
}
不要在startActivity
- 方法中调用doInBackground
。而是在OnPostExecute中调用它。 GUI操作不应该在doInBackground中完成。
答案 1 :(得分: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 之后,不要打电话 super.onPostExecute(result);
1}},它将直接返回 onPostExecute 方法,它将首先关闭doInBackground(Short... params)
,然后执行构造函数,它将再次尝试关闭{ {1}}已被解雇导致未捕获的异常。