按下Back后,AccountManagerFuture不会抛出OperationCanceled

时间:2013-05-23 19:38:20

标签: android accountmanager

我已经实现了Github GaugesGithub Android Client

行的自定义AccountManager

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

  • AccountAuthenticatorService(如here
  • AccountAuthenticator(如here
  • 调用accountManagerFuture.getResult()
  • 的ApiKeyProvider

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

任何人都知道如何开始调试它?

1 个答案:

答案 0 :(得分:2)

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

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

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

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