Android:进度对话框无法正常工作

时间:2012-12-27 08:08:25

标签: android progressdialog

在我的应用程序中,当我点击一个图标时,我在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;
            }
        });
    }

当我点击图标iam得到progressdailog(这里旋转器没有旋转)时遇到两个问题,后来得到fbdailog这很好,我取消fbdailog后仍然看到进度dailog,如何关闭progressdailog在fb dailog完成之后 任何帮助表示赞赏

2 个答案:

答案 0 :(得分:0)

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

将您的代码更改为

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

现在,对话框将显示它正在显示的ProgressDialog的引用,您可以在完成任务后解雇。

答案 1 :(得分:0)

使用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

并在此处关闭对话框。这可能对你有所帮助