Gmail API Android'Quickstart'撞上了一堵砖墙

Gmail API Android'Quickstart'撞上了一堵砖墙,android,api,google-oauth,Android,Api,Google Oauth,发出单个API请求。我曾尝试将此代码用作更真实场景(多个不同的API调用)的基础,但一直遇到困难。演示的结构使其非常困难 考虑发出API请求的代码: private void getResultsFromApi() { if (! isGooglePlayServicesAvailable()) { acquireGooglePlayServices(); } else if (mCredential.getSelectedAccountName() == nul

发出单个API请求。我曾尝试将此代码用作更真实场景(多个不同的API调用)的基础,但一直遇到困难。演示的结构使其非常困难

考虑发出API请求的代码:

private void getResultsFromApi() {
    if (! isGooglePlayServicesAvailable()) {
        acquireGooglePlayServices();
    } else if (mCredential.getSelectedAccountName() == null) {
        chooseAccount();
    } else if (! isDeviceOnline()) {
        mOutputText.setText("No network connection available.");
    } else {
        new MakeRequestTask(mCredential).execute();
    }
}
getResultsFromApi()
在API请求之前执行许多身份验证操作。是否应在每个API请求之前执行此操作

getResultsFromApi()
可以启动一个活动(在chooseAccount()中),这意味着
onActivityResult()
将(重新)调用
getResultsFromApi()
,以便最终到达API请求

事实上,代码中实际上有5个对
getResultsFromApi()
的调用,它们共同实现了对单个API请求的身份验证!!这可能是必要的,但最终是意大利面

这使得演示无法以其当前形式进行推广。假设我需要第二个按钮来发出其他API请求。没有大的重写就无法完成

有人能建议我如何重新组织演示代码,使其在现实世界中可用吗


谢谢

getResultsFromApi并没有做“很多事情”,它只是检查所有事情是否按照演示项目中的说明正确完成:

在验证所有前提条件都满足后,尝试调用API 满意的

如果不满足某个条件,将调用另一个函数来解决此问题,例如选择一个帐户。然后将再次调用getResultsFromApi,以完成在不满足所有先决条件的情况下启动的调用

您不必强制执行所有检查,但如果前提条件不满足,您的调用将失败