我正在尝试打开一个PendingIntent,通过通知在后台打开Gmail应用。
步骤如下:
通知仍然是用户看到的唯一内容(即,UI没有更改,但只有通知本身在单击操作按钮后才被解除)。
它可能是“hack-y”但我也可以快速打开然后“最小化”gmail应用程序?
有什么想法吗?
答案 0 :(得分:0)
好的,我真的不明白你能从这种行为中得到什么。
你肯定无法提供有关意图的任何有意义的额外数据(除非你是gmail的开发者,我不相信是这样的......)。
实际上,如果您打算明确启动Gmail应用程序(通过指定程序包名称) - 如果Gmail应用程序包名称发生更改,您的代码就会中断。
现在问你的问题:
可以在不将其带到前台的情况下启动活动:
您要做的就是添加标志待处理意图所持有的意图:FLAG_ACTIVITY_NEW_TASK
和FLAG_ACTIVITY_MULTIPLE_TASK
FLAG_ACTIVITY_MULTIPLE_TASK
标志。
gmail主要活动会在后台创建新任务,就是这样。
请注意,gmail活动不会抛出onResume
和onStart
回调(因为它不在前台...),所以如果从这个回调发生任何有意义的代码 - 它们将不会无论如何都要执行..
<强>更新强>
现在我知道您的目的是将电子邮件标记为“已读”,我可以告诉您,任何尝试启动gmail应用程序都希望对您有所帮助。正如我所提到的,你不能将额外有意义的数据传递给gamil启动意图。根本没有这样的API,启动主要活动根本不会做任何可以帮助你的事情。
相反,我建议您使用Gmail API's作为控制用户的收件箱