使用大檔案

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