在我的应用程序中,当我点击一个图标时,我在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完成之后 任何帮助表示赞赏
答案 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
并在此处关闭对话框。这可能对你有所帮助