Java 理解书面陈述
我在最新的Android记事本教程中发现了这段代码,该教程使用contentprovider并实现了PipeDataWriter 接口的方法为WriteDataOppe,其实现方式如下: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
@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的新功能。以前,您必须使用自己的解决方案来分叉线程以返回文件内容