【发布时间】:2015-06-22 22:29:15
【问题描述】:
我的要求与这个优秀的问题几乎相同:
Send data to activity with FLAG_ACTIVITY_REORDER_TO_FRONT
但是,我使用FLAG_ACTIVITY_NEW_TASK 是因为我的每个主要活动都需要作为新任务运行。在我的测试中,onNewIntent 在这种情况下不会被调用(即使活动已经在运行)。 那么我该如何向它传递数据呢?
我可以通过将launchMode 设置为singleTask 来调用onNewIntent,但是后来我遇到了这个错误:Android: bug in launchMode="singleTask"? -> activity stack not preserved
我想完成:
如果不存在实例,则创建一个新实例作为新任务,并向其传递数据。 (这部分已经可以了,我可以在onCreate中获取数据)
如果实例已存在,则将其所在的任务(整个任务,而不仅仅是根/一个活动)置于最前面,并且:
如果任务当前显示了子活动,则什么也不做
如果任务没有显示子活动(仅根/主活动),则处理传递的数据并更新 UI
我有一个带有“转到事件”按钮的任务,单击它需要打开/启动日历任务并突出显示特定事件(但如果顶部显示另一个活动,日历将忽略该请求)。
【问题讨论】:
-
当我在上面说“日历任务”时,我指的是我自己的应用程序中的任务,而不是内置的日历应用程序或任何其他日历应用程序。
-
你不能带着你的意图传递一堆额外的东西吗?
-
这就是我所做的,涵盖了#1。我无法弄清楚 #2(以及 3 和 4),因为没有调用 onNewIntent,所以如果我的活动已经在运行,我该如何获取捆绑包?
-
您是否尝试过this question 接受的答案中描述的解决方法?