androidのPDF関連のクラスでViewをPDFファイル出力ソース

androidのPDF関連のクラスを使ってViewをPDFファイル出力で使ったソースの一部です。
オプションメニューにボタンを追加して、それを押すと
バックグラウンドで、PDFファイルを作成します。
PDFファイル作成の負荷で、処理が時間がかかるためバックグラウンド(Thread)にしています。

 

   @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        // TODO 自動生成されたメソッド・スタブ
        super.onCreateOptionsMenu(menu, inflater);
        MenuItem mitem0 = menu.add(Menu.NONE,0,0,"PDF出力");
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO 自動生成されたメソッド・スタブ
        int id = item.getItemId();
        switch (id) {
            case 0:
                /*
                PDF出力 バックグランドで実行
                 */
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        outputPDF();
                    }
                }).start();
                break;
            case 1:
                break;
            default:
                break;
        }
        return super.onOptionsItemSelected(item);
    }

    private void outputPDF() {
        final String FILENAME = "output.pdf";
        File fileMemo = null; //
        String sdPath;

        //外部ストレージの現在の状態をチェック
        String state = Environment.getExternalStorageState();
        //マウントされていて読み書きが可能かどうか確認
        if(Environment.MEDIA_MOUNTED.equals(state)){
            Log.v("読み書き","読み書き可能");
            //外部ストレージのパスを取得
            File extDir = Environment.getExternalStorageDirectory();
            sdPath = extDir.getPath();

            //保存先のパス
            String savePath = File.separator +"Download"+File.separator+
                    getActivity().getPackageName()+File.separator+
                    FILENAME;

            sdPath += savePath;
            Log.v("保存先",""+sdPath);

            //フォルダ作成
            fileMemo = new File(sdPath);
            fileMemo.getParentFile().mkdirs();
        }else{
            Log.v("エラー","エラー読み書き不可");
            return;
        }
        Log.v("START","STart Creating PDF File");
        FileOutputStream fileOutputStream=null;

        try {
            fileOutputStream = new FileOutputStream(fileMemo,true);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        PdfDocument document = new PdfDocument();
        PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(1080, 1920,1).create();
        PdfDocument.Page page = document.startPage(pageInfo);
        //View content = v.findViewById(R.id.scrolling_graph_1);
        v.draw((page.getCanvas()));
        document.finishPage(page);
        try {
            document.writeTo(fileOutputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
        // close the document
        document.close();
        Log.v("END","Finished Creating PDF File");
    }