Android - вызов функции при аутентификации завершения процесса

Я пытаюсь интегрировать загрузку Dropbox в мое приложение. Я прочитал официальные примеры и смог написать клиент для загрузки файлов. Теперь есть только одна вещь, которую я хотел бы исправить... в примере сначала запустите эту строку кода:

mDBApi.getSession().startOAuth2Authentication(MainActivity.this);

и затем используйте OnResume для завершения аутентификации:

protected void onResume() {
    super.onResume();
    if (mDBApi.getSession().authenticationSuccessful()) {
        try {
            // Required to complete auth, sets the access token on the session
            mDBApi.getSession().finishAuthentication();

            String accessToken = mDBApi.getSession().getOAuth2AccessToken();
        } catch (IllegalStateException e) {
            Log.i("DbAuthLog", "Error authenticating", e);
        }
    }
    new myOperation().execute("");
}

Это работает, но я искал способ заменить onResume (который также вызывается при запуске приложения и вызывает некоторые исключения). Есть ли способ вызвать функцию, когда mDBApi.getSession(). StartOAuth2Authentication(MainActivity.this); заканчивается?

Спасибо за помощь, и, как обычно, если вам нужна дополнительная информация, пожалуйста, спросите

1 ответ

Решение

Если это единственный доступный для API способ, то вы должны использовать его, если у вас есть контроль над тем, что делает startOAuth2Authentication, вы можете использовать startActivityForResult (), но его внутренний API нельзя изменить.

поэтому я бы посоветовал вам обрабатывать любые исключения, которые вы получаете в onResume(), используя некоторые проверки, такие как обертывание всего кода внутри onResume() с этим

if(mDBApi!=null){...
Другие вопросы по тегам