1

以前可能有人问过这个问题,但我找不到实现它的好方法。我正在尝试编写一个管理某种形式的消息的程序,这些消息是从外部数据源接收的。这一切都有效。但是,当我尝试通知用户时,问题就来了:我想让通知在被触摸时直接跳转到消息,但这似乎弄乱了后台堆栈。这可能最好通过示例来解释:

  1. 我打开消息列表,主要活动,并浏览了一会儿。
  2. 我回家并进入另一个应用程序(比如说音乐)。
  3. 收到一条新消息。出现一个通知,我触摸它。将显示消息详细信息视图。
  4. 现在我回击了。我想要发生的是我返回音乐,但不幸的是,返回将我发送到消息列表,然后点击返回将使我返回音乐。

列表和详细活动都标记为“singleTop”,我用于通知意图的确切标志是:

  • FLAG_ACTIVITY_NEW_TASK
  • FLAG_ACTIVITY_CLEAR_TOP
  • FLAG_ACTIVITY_SINGLE_TOP

我想如果 Messaging 应用程序可以做到这一点,为什么我不能呢?

4

1 回答 1

0

我找到了一种方法来做到这一点,但它仍然不理想:

  • 将详细活动更改为与其他所有活动具有不同的任务亲和性。
  • android:launchMode="singleTop"将和添加android:excludeFromRecents="true"到详细活动的清单条目。
  • (可选)修改列表活动以打开详细活动FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET。(这使得任务更像是内置的消息应用程序。)

这个方案的唯一缺点是切换回应用程序总是会回到列表活动,但至少它是一致的。如果其他人有更好的方法来做到这一点,我很想听听。

于 2010-08-16T17:54:02.720 回答