Android 无法关闭AsyncTask中的进度条
我想使用progressbar以加载效果将列表中的数据加载到gridview。我从Web服务获取项目。我面临的问题是,即使在显示gridview之后,我也无法关闭进度条。我可以看到gridview中的项目,但进度条仍在运行。我在这里做错了什么Android 无法关闭AsyncTask中的进度条,android,Android,我想使用progressbar以加载效果将列表中的数据加载到gridview。我从Web服务获取项目。我面临的问题是,即使在显示gridview之后,我也无法关闭进度条。我可以看到gridview中的项目,但进度条仍在运行。我在这里做错了什么 private void testAsyncTask() { Log.e("Im in testAsyncTask()", ""); new AsyncTask<Object, Object, Object>()
private void testAsyncTask() {
Log.e("Im in testAsyncTask()", "");
new AsyncTask<Object, Object, Object>() {
@Override
protected void onPreExecute() {
progress_Dialog = ProgressDialog.show(a, "", "Loading");
Log.e("Im in onPreExecute", "");
// super.onPreExecute();
}
@Override
protected Integer doInBackground(Object... params) {
MenuService menuService = new MenuServiceImpl();
PartnerMenuServiceResponse partnerMenu = menuService
.getPartnerMenu();
jewellist = partnerMenu.getMenu().getMenuEntries();
Log.e("Im in doInBackground", "");
System.gc();
return 0;
}
@Override
protected void onPostExecute(Object result) {
// TODO Auto-generated method stub
// super.onPostExecute(result);asd
Log.e("Im in onPostExecute", "");
if (progress_Dialog.isShowing()) {
progress_Dialog.dismiss();
}
ShopGridAdapter adapter = new ShopGridAdapter(ShopGridActivity.this, jewellist);
AllJewelgridView.setAdapter(adapter);
adapter.notifyDataSetChanged();
//AllJewelgridView.setAdapter(new ShopGridAdapter(
// ShopGridActivity.this, jewellist));
if (AllJewelgridView.getCount() <= 0) {
MyAlertDialog.ShowAlertDialog(ShopGridActivity.this, "",
"No data found.", "OK");
}
progress_Dialog.dismiss();
}
}.execute();
}
private void testAsyncTask(){
Log.e(“testAsyncTask()中的Im”,即“”);
新建异步任务(){
@凌驾
受保护的void onPreExecute(){
progress_Dialog=ProgressDialog.show(a,“,”加载“);
Log.e(“我在onPreExecute中,”);
//super.onPreExecute();
}
@凌驾
受保护的整数doInBackground(对象…参数){
MenuService MenuService=new MenuServiceImpl();
PartnerMenUserVicerResponse partnerMenu=menuService
.getPartnerMenu();
jewellist=partnerMenu.getMenu().GetMenutries();
Log.e(“我在doInBackground”中,“”);
gc();
返回0;
}
@凌驾
受保护的void onPostExecute(对象结果){
//TODO自动生成的方法存根
//super.onPostExecute(结果);asd
Log.e(“在onPostExecute中的Im,”);
if(progress\u Dialog.isShowing()){
进程_对话框。解除();
}
ShopGridAdapter=新的ShopGridAdapter(ShopGridActivity.this,jewellist);
AllJewelgridView.setAdapter(适配器);
adapter.notifyDataSetChanged();
//AllJewelgridView.setAdapter(新ShopGridAdapter(
//ShopGridActivity.this,珠宝清单);
if(AllJewelgridView.getCount()中)
编辑:
@Override
protected void onPostExecute(Object result) {
Log.e("Im in onPostExecute", ""); <------ ARE YOU ABLE SEE THIS IN logcat ?
progress_Dialog();
}
@覆盖
受保护的void onPostExecute(对象结果){
Log.e(“在onPostExecute中的Im,”);
编辑:
@Override
protected void onPostExecute(Object result) {
Log.e("Im in onPostExecute", ""); <------ ARE YOU ABLE SEE THIS IN logcat ?
progress_Dialog();
}
@覆盖
受保护的void onPostExecute(对象结果){
Log.e(“Im in onPostExecute”,”);您需要在AsyncTask
ProgressDialog progress=null;
progress=ProgressDialog.show(this,"title","loading..").show();//put this code in onPreExecute()
progress.dismiss();//put this code in onPostExecute()
要了解更多信息,您需要在异步任务中添加一些代码
ProgressDialog progress=null;
progress=ProgressDialog.show(this,"title","loading..").show();//put this code in onPreExecute()
progress.dismiss();//put this code in onPostExecute()
有关更多信息,请使用onPostExecute方法编写
if ( progress_Dialog != null) {
progress_Dialog.cancel();
}
您可以在onPostExecute中编写方法,该方法可能会对您有所帮助
if ( progress_Dialog != null) {
progress_Dialog.cancel();
}
他可以看到进度对话框,但不能将其取消。@playmaker420:您的进度没有完成是的,我发现了问题。我在onCreate()中调用了testAsyncTask()函数两次。现在似乎一切都正常。谢谢您的帮助replies@playmaker420那么,如果testAsynchTask()发生了什么调用两次??在这种情况下,onPost也将被调用两次。他可以看到进度对话框,但不能将其取消。@playmaker420:您的进度尚未完成yetGuys我发现了问题。我在onCreate()中调用了testAsyncTask()函数两次。现在似乎一切正常。感谢您的帮助replies@playmaker420那么,如果testAsynchTask()发生了什么调用两次??在这种情况下,onPost也将被称为twiceyea。我已经在使用它。我已经解决了onCreate()中的问题。是的。我已经在使用它。我解决了onCreate()中的问题。问题在onCreate()中。感谢您回复您仍然存在的问题?问题在onCreate()中.谢谢你的回复。你的问题还没有解决?