使用大文件
小文件在几分之一秒内处理完毕,你可以读取/写入它们来代替你需要的代码。但是,如果文件较大或处理速度较慢,则可能需要在 Android 中使用 AsyncTask 在后台处理该文件:
class FileOperation extends AsyncTask<String, Void, File> {
@Override
protected File doInBackground(String... params) {
try {
File file = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOCUMENTS), "bigAndComplexDocument.odf");
FileOutputStream out = new FileOutputStream(file)
... (write the document)
out.close()
return file;
} catch (IOException ex) {
Log.e("Unable to write", ex);
return null;
}
}
@Override
protected void onPostExecute(File result) {
// This is called when we finish
}
@Override
protected void onPreExecute() {
// This is called before we begin
}
@Override
protected void onProgressUpdate(Void... values) {
// Unlikely required for this example
}
}
}
然后
new FileOperation().execute("Some parameters");
这个 SO 问题包含有关如何创建和调用 AsyncTask 的完整示例。另请参阅有关如何处理 IOExceptions 和其他错误的错误处理问题 。