Нет намерения исключить UserRecoverableAuthIOException, используя Drive SDK для Android

Я внедрил Google Drive в мое приложение для Android, и он работает довольно хорошо, но яя пытаюсь найти способ запустить загрузку / выгрузку в фоновом потоке, чтобы я мог оставить активность и заняться чем-то другим в своем приложении. Проблема в том, что в случае исключений, таких как, накопителю нужна ссылка на активность.UserRecoverableAuthIOException

Вот'Это проблема, которую я не могу понять. Вот'Какой-нибудь код try / catch:

try {
    //...drive api stuff here
} catch (UserRecoverableAuthIOException e) {
    possibleException = e;
    try {
        e.getIntent();
    } catch ( NullPointerException e2 ) {  //this is the crazy part
        // e.getIntent() should not throw a nullpointer
        e2.printStackTrace();
        possibleException = e2;
    }
    onActivityRestartWhat = RESTART_IMPORT;
    // just a note i do handle this exception properly in another section of a code when there is an intent.
} catch (FileNotFoundException e) {
    possibleException = e;
    e.printStackTrace();
} catch (IOException e) {
    possibleException = e;
    e.printStackTrace();
}

Что я могу'понять, почемуUserRecoverableAuthIOException бросаетNullPointerException почему я пытаюсь получить доступ.getIntent

Больше информации

Я ловлюUserRecoverableAuthIOException когда требуется дополнительная аутентификация и запросить ее черезstartActivityForResult метод. Кроме того, это исключение выдается только в том случае, если я возвращаюсь из начавшегося действия, или уничтожаю его. По сути, у меня есть процесс, который загружает / скачивает файлы дисков в потоке, и если я нене оставлять действие до завершения, оно работает, если я уничтожу действие с помощью кнопки назад, то получу это исключение.

Трассировки стека
07-10 14:45:32.903: W/System.err(1450): java.lang.NullPointerException
07-10 14:45:32.913: W/System.err(1450):     at android.content.Intent.      (Intent.java:3529)
07-10 14:45:32.913: W/System.err(1450):     at    com.google.android.gms.auth.UserRecoverableAuthException.getIntent(Unknown Source)
07-10 14:45:32.913: W/System.err(1450):     at com.google.api.client.googleapis.extensions.android.gms.auth.UserRecoverableAuthIOException.getIntent(UserRecoverableAuthIOException.java:62)
07-10 14:45:32.913: W/System.err(1450):     at my.app.DriveHelper$2.run(DriveHelper.java:211)
Мое желание

Я хочу запускать загрузки / выгрузки (через Google Drive) в фоновом потоке. Поскольку SDK требуетstartActivityForResult и другие методы, которые могут потребовать ссылки наActivity или жеContext это делает это трудным, но оно должно работать после того, как приложению будут предоставлены разрешения sdk, для которых требуются эти ссылки. Надеюсь, это имеет смысл.

Ответы на вопрос(2)

Ваш ответ на вопрос