Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法关闭AsyncTask中的进度条_Android - Fatal编程技术网

Android 无法关闭AsyncTask中的进度条

Android 无法关闭AsyncTask中的进度条,android,Android,我想使用progressbar以加载效果将列表中的数据加载到gridview。我从Web服务获取项目。我面临的问题是,即使在显示gridview之后,我也无法关闭进度条。我可以看到gridview中的项目,但进度条仍在运行。我在这里做错了什么 private void testAsyncTask() { Log.e("Im in testAsyncTask()", ""); new AsyncTask<Object, Object, Object>()

我想使用progressbar以加载效果将列表中的数据加载到gridview。我从Web服务获取项目。我面临的问题是,即使在显示gridview之后,我也无法关闭进度条。我可以看到gridview中的项目,但进度条仍在运行。我在这里做错了什么

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()中.谢谢你的回复。你的问题还没有解决?