Обработка ошибок для API покоя накопителей в Java-приложении Android - PullRequest
0 голосов
/ 08 октября 2019

Я успешно реализовал Drive Rest API, и, похоже, все работает нормально. Что меня смущает, так это обработка ошибок, если что-то идет не так (потеря соединения и т. Д.). Я предполагаю, что эти ошибки являются распространенными, поэтому был бы стандартный ответ, который я мог бы добавить к своему addOnFailureListener () или написать код для всех возможных ошибок. Как лучше всего обрабатывать ошибки REST.

Основная деятельность:

public void doRestore(int position){
    progressDialog = ProgressDialog.show(this, null, getString(R.string.backup_restore_message), false, false);
    mDriveServiceHelper.restoreFile(data.get(position).getId()).
            addOnSuccessListener(new OnSuccessListener<Void>() {
                @Override
                public void onSuccess(Void aVoid) {               
                    progressDialog.dismiss();
                    finish();
                    Intent i = new Intent(BackupNew.this, Splash.class);
                    startActivity(i);
                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    progressDialog.dismiss();
                    // What do I add here???
                }
            });
}

Вспомогательный класс:

public Task<Void> restoreFile(final String fileId) {
    return Tasks.call(mExecutor, new Callable<Void>() {
        @Override
        public Void call() throws Exception {
            InputStream is = mDriveService.files().get(fileId).executeMediaAsInputStream();
            FileOutputStream myOutput = new FileOutputStream(context.getDatabasePath("appData"));
            byte[] buffer = new byte[1024];
            int length;
            while ((length = is.read(buffer)) > 0) {
                myOutput.write(buffer, 0, length);
            }
            myOutput.flush();
            myOutput.close();
            is.close();
            return null;
        }
    });
}

1 Ответ

0 голосов
/ 08 октября 2019

Вы можете просто напечатать сообщение трассировки стека для отладки. Похоже, что API не возвращает никаких сообщений, но, как вы знаете, если оно не работает, вы можете показать свое собственное сообщение об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...