【问题标题】:Preload Activity in backstack在 backstack 中预加载 Activity
【发布时间】:2019-08-02 23:05:31
【问题描述】:

当用户点击通知时,我设置了一个活动 A -> B 的后台堆栈,其中 B 位于顶部并显示给用户。我希望 Activity A 的生命周期能够运行,这样当用户按下返回按钮并来到 Activity A 时,它就已经准备好了。我能做些什么来实现这一目标?

【问题讨论】:

  • 我看不出这是可能的,因为系统让我们能够启动一系列活动的方式是TaskStackBuilder,这不会使堆栈上的所有活动都到达它们的@ 987654322@,因为显然那些活动还没有显示给用户,只有最上面的活动会达到onResume状态。只要您导航回上一个活动 - 只有这样,活动才会被创建并达到onResume 状态。我认为您应该重新考虑您的应用程序逻辑。你有什么用例?
  • 你能举一些具体的例子来说明你想要预加载的内容吗?
  • 看起来像一个资源密集型应用程序?

标签: android android-activity android-notifications back-stack


【解决方案1】:

这是不可能的,因为 android 不允许我们这样做,我认为您可以通过在 Activity B 中执行 Activity A 操作来实现这一点> 并在用户按下后退按钮时将这些详细信息提供给 Activity A。

注意:如果您在活动 A 上显示任何类型的列表或做类似的工作,您可以有一个单例类,您可以在活动 B 中获取活动 A 所需的数据,并在用户按下返回按钮时向 Activity A 提供相同的数据。

【讨论】:

    【解决方案2】:

    您应该像往常一样打开活动,然后将这行代码放在 OnCreate() 方法中以置于后面。

    moveTaskToBack(true);
    

    【讨论】:

    • 你能解释一下吗?
    • 这会将活动移动到后台处理。它将打开,但在后台。你应该把这行代码放在你想在后台运行的activity中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多