Android:progressdailog无法正常工作

Android:progressdailog无法正常工作,android,progressdialog,Android,Progressdialog,在我的应用程序中,当我点击图标时,我在fb dailog上实现了一个发布,但加载fbdailog需要时间,我使用progressDailog,代码如下 ImageView faceBookIntegration = (ImageView) activity .findViewById(R.id.facebookintegration); faceBookIntegration.setOnTouchListener(new OnTouchListen

在我的应用程序中,当我点击图标时,我在fb dailog上实现了一个发布,但加载fbdailog需要时间,我使用progressDailog,代码如下

ImageView faceBookIntegration = (ImageView) activity
                .findViewById(R.id.facebookintegration);
        faceBookIntegration.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                Constants.isLayoutTouched = true;
                switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN: {

                    CityAttractions.this.runOnUiThread(new Runnable() {
                        public void run() {
                            Dialog dialog = ProgressDialog.show(CityAttractions.this, "","Please wait...", true);
                            dialog.show();
                        }
                    });

                    Intent menuSettingsIntent = new Intent(CityAttractions.this, ShareOnFacebook.class);
                    menuSettingsIntent.putExtra("facebookMessage", "Msg");
                    startActivity(new Intent(menuSettingsIntent).addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT));


                    break;
                }
                case MotionEvent.ACTION_MOVE:
                    break;
                case MotionEvent.ACTION_UP:
                    break;
                }
                return false;
            }
        });
    }
当我点击图标时面临两个问题:我获取progressdailog(此处微调器未旋转),然后获取fbdailog,这很好,在取消fbdailog后,我仍然看到progressdailog,fb dailog完成后如何关闭progressdailog
非常感谢您的帮助

嘿,您犯了一个大错误。show()将创建ProgressDialog实例并显示该对话框。您正在将同一对话框分配给另一个对话框并再次显示它。所以它显示了双倍的时间

将代码更改为

Dialog dialog = ProgressDialog.show(CityAttractions.this, "","Please wait...", true);

现在,对话框将具有显示的ProgressDialog的引用,任务完成后,您可以退出该对话框。

使用startActivityForResult而不是startActivity 试试这个代码

Intent menuSettingsIntent = new Intent(CityAttractions.this, ShareOnFacebook.class);
                menuSettingsIntent.putExtra("facebookMessage", "Msg");
                startActivityForResult(new Intent(menuSettingsIntent).addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT), REQUEST_CODE);
和覆盖onActivityResult


然后在这里关闭对话框。这是否可以帮助您

也许,因为您是在action\u down事件中执行此操作的?从fbdialog中传递任何变量,同时返回检查。并驳回dialog@nick..new对此,你能建议我怎么做吗?在关闭fbdailog后,我仍然可以看到progressdailog..是否需要调用dialog.Disclose();???嘿,这就是我在回答中提到的,任务完成后,您需要调用dialog.Disclease()。我应该在哪里调用Disclease(),我的任务将在另一个活动中结束…?您的代码很混乱,我无法知道为什么要显示进度对话框。加载fbdailog(自定义dailog)需要时间因此,同时我想显示progressdailog..它在活动中已经有一个onActivityResult..我可以调用它吗?对此使用不同的请求代码,并在onActivityResultstartActivityForResult中使用该请求代码的结果(新意图(menuSettingsIntent).addFlags(Intent.FLAG\u activity\u REORDER\u TO\u FRONT),1);使用this如果(resultCode==RESULT_OK&&requestCode==1){dialog.disease();}要在子活动中关闭对话框,必须设置结果