使用大檔案
小檔案在幾分之一秒內處理完畢,你可以讀取/寫入它們來代替你需要的程式碼。但是,如果檔案較大或處理速度較慢,則可能需要在 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 和其他錯誤的錯誤處理問題 。