我使用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);
答案 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);