1

私のアクティビティで関数を呼び出しています。これは基本的に、Webサービスを介してリモートサーバーからデータをフェッチするための非同期タスクです。

 private void myAsyncTask() {
            new AsyncTask<Object, Object, Object>() {

                @Override
                protected void onPreExecute() {

                    progress_Dialog = ProgressDialog.show(a, "", "Loading");

                }

                @Override
                protected Integer doInBackground(Object... params) {


                    try
                    {
                    try {

                        MenuService menuService = new MenuServiceImpl();

                        MenuServiceResponse partnerMenu;
                            partnerMenu = menuService.getMenu();

                        productlist=Menu.getMenu().getMenuEntries();

                        System.gc();
                        return 0;
                    } catch (myServiceException e) {
                        bgFlag=true;

                        e.printStackTrace();
                    }
                    }
                    catch (Exception e) {

                        bgFlagForserviceExeption=true;
                        e.printStackTrace();


                    }
                    }                           return 0;
                }


                @Override
                protected void onPostExecute(Object result) {
                    if (progress_Dialog != null) {

                        progress_Dialog.dismiss();

                    }

                    try
                    {

                        if(bgFlagForserviceExeption)
                        {
                            MyAlertDialog.ShowAlertDialog(ShopActivity.this, "", "Please try again later", "OK");

                        }
                        if(bgFlag==false)
                        {
                     adapter = new ShopAdapter(
                            ShopActivity.this, productlist);

                                    allproduts.setAdapter(adapter);
                        }
                        else
                        {
                            MyAlertDialog.ShowAlertDialog(ShopActivity.this, "", " Please try again later", "OK");

                        }


                    }
                    catch(Exception e)
                    {
                        adapter=null;
                }

                }

            }.execute();



}

このアクティビティを呼び出すと、doinbackground()が終了するまで進行状況バーが表示されます。電話の戻るボタンを押してバックグラウンドプロセスを終了するにはどうすればよいですか。今のところ問題は、バックグラウンドプロセスが完了するまで待たなければならないことです。戻るボタンを押します。どうすればこれを達成できますか

4

1 に答える 1

1

戻るボタンを上書きします。

ここにあります

その中で、単にasynctack.cancel(true);を呼び出します。

ここを読む

于 2012-10-25T10:16:37.480 に答える