0

我们的大多数活动都访问特定于用户的模型。所有这些活动都继承自一个提供 getModel() 调用的 ModelActivity 基类。当这些活动之一检测到用户已退出(通过 AccountManager 回调)时,它会坚持其现有模型,但准备通过以 FLAG_ACTIVITY_CLEAR_TOP 开始其意图来退出回到根活动(不是用户特定的)。

但是,如果用户在应用程序未运行时删除了一个帐户,那么当活动恢复时我们就会遇到麻烦。现在活动需要在没有模型的情况下处理,这使得代码更加复杂和容易出错。

理想情况下,我们会在创建活动之前拦截应用程序恢复过程。然后我们将检查我们是否有一个帐户和一个模型,如果没有,则清除保存的活动堆栈,并从我们的根活动而不是上次保存的活动重新启动。但据我所知,我们可以运行代码的第一个地方是活动的 onCreate 回调。

当应用程序从后台保存恢复时,但在创建保存的活动之前,有没有办法运行一些代码?

4

2 回答 2

0

我建议您实施 a Service,这将在您的活动中受到关注。如果你创建一个新的Activity,你总是知道是否恢复了你Activity

于 2013-10-28T22:11:14.357 回答
0

我不完全确定这一点,也从未实现过,但你可以扩展Application.ActivityLifecycleCallbacks和注册你的类registerActivityLifecycleCallbacks

这些回调在 Activity 回调之前被调用。

于 2013-10-28T22:01:28.663 回答