【问题标题】:Intercept creation of activities when the application is restored恢复应用程序时拦截活动的创建
【发布时间】:2013-10-28 21:51:28
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: android android-activity activity-lifecycle


    【解决方案1】:

    我对此并不完全确定,也从未实现过,但您可以扩展 Application.ActivityLifecycleCallbacks 并使用 registerActivityLifecycleCallbacks 注册您的课程。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2010-10-17
        • 2013-05-27
        • 2010-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多