在用户视图外部创建android PDF文档

在用户视图外部创建android PDF文档,android,Android,我正在尝试创建一个PdfDocument,android位于用户视图之外。基本上,我希望生成与当前显示的视图不同的PdfDocument。创建后,将通过电子邮件发送给用户。我将pdf中我想要的所有内容添加到一个AlertDialog中,然后在“驳回”对话框中,我将视图保存为pdf并发送电子邮件 final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); final View dialogView = in

我正在尝试创建一个PdfDocument,android位于用户视图之外。基本上,我希望生成与当前显示的视图不同的PdfDocument。创建后,将通过电子邮件发送给用户。我将pdf中我想要的所有内容添加到一个AlertDialog中,然后在“驳回”对话框中,我将视图保存为pdf并发送电子邮件

final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
final View dialogView = inflater.inflate(R.layout.receipt_layout, null);
... add stuff to view
builder.setView(dialogView);
final Dialog dialog = builder.create();
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
    @Override
    public void onDismiss(DialogInterface dialog) {
        ... save pdf and send email
    }
 }
 dialog.show();
 WindowManager wm = (WindowManager) getActivity().getSystemService(Context.WINDOW_SERVICE);
 Display display = wm.getDefaultDisplay();
 DisplayMetrics outMetrics = new DisplayMetrics ();
 display.getMetrics(outMetrics);
 float density  = getResources().getDisplayMetrics().density;
 float dpHeight = outMetrics.heightPixels / density;
 float dpWidth  = outMetrics.widthPixels / density;
 dialog.getWindow().setLayout(370, (int)dpHeight);
 //dialog.dismiss(); // when uncommented, it produces a blank document

当警报显示且我手动触发解除时,此功能正常工作。但是,当我在显示对话框后添加dialog.disclose时,它会生成一个空白文档。我不确定是否有一个事件可以点击,表明视图对于pdf创建是可见的/prime,然后触发关闭?或者有一种更简单的方法可以在用户视图之外执行此操作,闪烁可以吗?

我会尝试覆盖对话框的onPause方法,并将代码保存到那里的pdf格式。当一个活动关闭时,第一个调用的方法是onPause,此时该活动仍然可见。下一个调用的方法是onStop;此时,活动不再可见。dismise通过onPause、onStop和onDestroy依次处理该对话框,因此当您在上面的代码中找到侦听器时,该对话框不再存在

我最终使用OnGlobalLayoutListener触发了解雇呼叫