1

我已经按照Github GaugesGithub Android Client实现了一个自定义 AccountManager

更具体地说,我正在实施:

  • AccountAuthenticatorService(像这里
  • AccountAuthenticator(像这里
  • 调用的 ApiKeyProvideraccountManagerFuture.getResult()

当 accountManagerFuture.getResult() 被调用时,我的 LoginActivity 就像应该的那样启动。但是,当按下后退按钮时,我没有得到应有的 OperationException(在 GitHub Gauges 项目上,它似乎正在工作)

有人知道如何开始调试吗?

4

1 回答 1

2

你是什​​么意思“何时accountManagerFuture.getResult()被调用”?您是否在按下后退按钮后保持对未来的引用,然后getResult()在某个时间点调用?因为OperationCanceledException只有在取消操作后显式调用此方法时才会调用 an。

了解事件流是开始调试问题的好地方。当您按下返回按钮时onBackPressed()被调用;onBackPressed()然后将调用finish(),并根据AccountAuthenticatorActivity类的源代码,被覆盖的finish()方法将发送最终取消任务的信号。这对你开始有帮助吗?

另请注意,当您按下后退按钮时,只有在操作仍在运行时才会取消操作。如果操作已经完成,则不会抛出异常(因为当前没有任何活动的操作可供框架取消)。换句话说,当您按下返回按钮时,您可能不会遇到异常......这完全取决于操作是否已经完成。

如果您仍然遇到问题,我会考虑在您的原始问题中添加一些代码,否则我们将很难进一步帮助您。:)

于 2013-05-23T19:58:59.780 回答