Android PrintManager获得回调

时间:2015-06-09 20:19:27

标签: android printing

我使用PrintManager打印网页,一旦打印成功,我的活动如何获得回调? 我正在使用此代码:

    // Get a PrintManager instance
    PrintManager printManager = (PrintManager) this.getSystemService(Context.PRINT_SERVICE);

    // Get a print adapter instance
    PrintDocumentAdapter printAdapter = webView.createPrintDocumentAdapter();

    // Create a print job with name and adapter instance
    String jobName = getString(R.string.app_name) + " Document";
    PrintJob printJob = printManager.print(jobName, printAdapter,
            new PrintAttributes.Builder().build());
    // Save the job object for later status checking
    //mPrintJobs.add(printJob);

1 个答案:

答案 0 :(得分:3)

围绕从webView收到的PrintDocumentAdapter创建一个包装器。然后你可以在onFinish()中添加一个钩子。

public class PrintDocumentAdapterWrapper extends PrintDocumentAdapter{

     private final PrintDocumentAdapter delegate;
     public PrintDocumentAdapterWrapper(PrintDocumentAdapter adapter){
         super();
         this.delegate = adapter;
     }

     public void onFinish(){
          delegate.onFinish();
          //insert hook here
     }

     //override all other methods with a trivial implementation calling to the delegate
}

以下是如何在代码中使用它:

// Get a PrintManager instance
PrintManager printManager = (PrintManager)    this.getSystemService(Context.PRINT_SERVICE);

// Get a print adapter instance and wrap it in my own adapter
PrintDocumentAdapter printAdapter = new PrintDocumentAdapterWrapper(webView.createPrintDocumentAdapter());

// Create a print job with name and adapter instance
String jobName = getString(R.string.app_name) + " Document";
PrintJob printJob = printManager.print(jobName, printAdapter,
        new PrintAttributes.Builder().build());
// Save the job object for later status checking
//mPrintJobs.add(printJob);