Java 理解书面陈述

Java 理解书面陈述,java,android,design-patterns,Java,Android,Design Patterns,我在最新的Android记事本教程中发现了这段代码,该教程使用contentprovider并实现了PipeDataWriter 接口的方法为WriteDataOppe,其实现方式如下: @Override public void writeDataToPipe(ParcelFileDescriptor output, Uri uri, String mimeType, Bundle opts, Cursor c) { // We currently only support conve

我在最新的Android记事本教程中发现了这段代码,该教程使用contentprovider并实现了PipeDataWriter

接口的方法为WriteDataOppe,其实现方式如下:

@Override
public void writeDataToPipe(ParcelFileDescriptor output, Uri uri, String mimeType, Bundle opts, Cursor c) {
    // We currently only support conversion-to-text from a single note entry,
    // so no need for cursor data type checking here.
    FileOutputStream fout = new FileOutputStream(output.getFileDescriptor());
    PrintWriter pw = null;
    try {
        pw = new PrintWriter(new OutputStreamWriter(fout, "UTF-8"));
        pw.println(c.getString(READ_NOTE_TITLE_INDEX));
        pw.println("");
        pw.println(c.getString(READ_NOTE_NOTE_INDEX));
    } catch (UnsupportedEncodingException e) {
        Log.w(TAG, "Ooops", e);
    } finally {
        c.close();
        if (pw != null) {
            pw.flush();
        }
        try {
            fout.close();
        } catch (IOException e) {
        }
    }
}
我的疑问是,他们为什么特别使用PipeDataWriter

这是某种设计模式吗

我没有找到其他使用过它的来源。为什么会这样

他们为什么特别使用PipeDataWriter

他们正在使用
openPipeHelper()
实现
openTypedAssetFile()
openPipeHelper()
PipeDataWriter
作为参数。在他们的案例中,他们在
NotePadProvider
本身上实现了
PipeDataWriter
,因此需要实现
openPipeHelper()
,以履行
PipeDataWriter
接口所需的契约

PipeDataWriter
openPipeHelper()
是API级别11的新功能。以前,您必须使用自己的解决方案来分叉线程以返回文件内容