在后台打开Gmail PendingIntent?

时间:2014-01-16 16:16:17

标签: android notifications gmail android-pendingintent

我正在尝试打开一个PendingIntent,通过通知在后台打开Gmail应用。

步骤如下:

  1. 使用操作按钮显示通知
  2. 点击操作按钮(有一个PendingIntent),我想启动PendingIntent(启动Gmail应用)但在后台。
  3. 驳回通知
  4. 通知仍然是用户看到的唯一内容(即,UI没有更改,但只有通知本身在单击操作按钮后才被解除)。

    它可能是“hack-y”但我也可以快速打开然后“最小化”gmail应用程序?

    有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好的,我真的不明白你能从这种行为中得到什么。

你肯定无法提供有关意图的任何有意义的额外数据(除非你是gmail的开发者,我不相信是这样的......)。

实际上,如果您打算明确启动Gmail应用程序(通过指定程序包名称) - 如果Gmail应用程序包名称发生更改,您的代码就会中断。

现在问你的问题:

可以在不将其带到前台的情况下启动活动:

您要做的就是添加标志待处理意图所持有的意图:FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_MULTIPLE_TASK

除非您的应用程序是启动器,否则不建议使用

FLAG_ACTIVITY_MULTIPLE_TASK标志。

gmail主要活动会在后台创建新任务,就是这样。

请注意,gmail活动不会抛出onResumeonStart回调(因为它不在前台...),所以如果从这个回调发生任何有意义的代码 - 它们将不会无论如何都要执行..

<强>更新

现在我知道您的目的是将电子邮件标记为“已读”,我可以告诉您,任何尝试启动gmail应用程序都希望对您有所帮助。正如我所提到的,你不能将额外有意义的数据传递给gamil启动意图。根本没有这样的API,启动主要活动根本不会做任何可以帮助你的事情。

相反,我建议您使用Gmail API's作为控制用户的收件箱