繁体   English   中英

从Service调用的singleTask活动不会触发onNewIntent

[英]singleTask Activity called from Service doesn't trigger onNewIntent

我的理解是,单个task活动(如果已经存在)将不会再次创建,但是将调用其onNewIntent。

实际上,这就是当我从另一个Activity(而不是从服务)启动Intent时发生的情况。

此外,我注意到,如果我将Activity声明为singleInstance(即在这种情况下,即使从服务onNewIntent调用了)也不会发生这种情况,但这还会涉及我不希望出现的Back Stack复杂性。

我不屑一顾的是,如果我正在运行singleTask Activity的实例,那么将始终调用onNewIntent,并且它确实可以通过Activity而不是服务来工作。

为什么会这样,我应该怎么做才能保持我的后备箱完好无损,而仅将现有活动从服务中带到顶部?

注意:当我调用singleTask活动时,我确实有FLAG_ACTIVITY_NEW_TASK。

谢谢!

我测试过,从服务启动时会调用onNewIntent。 我认为发生的事情是您的任务被系统杀死,因此当您从服务启动时,将创建一个新任务,因此不会调用onNewIntent。

因此,看来我可以通过不让服务响应HOME意图来解决问题。

我应该提到:我的服务得到了家的意图,然后启动了我想看到的实际活动。 我找不到没有不使用singleInstance就能清除活动先前实例的方法。

因此,到目前为止,由活动本身处理HOME事件似乎可以防止重新创建(可能是因为该服务在获得归宿意图时正在破坏其他所有内容)。 我不确定100%是否能理解所有这些内容,但似乎足以解决问题。

我在尝试解决类似问题时看到了这个问题。 我在另一个线程中用此问题的解决方案进行了回答,也许在该线程中使用相同的响应可能会有用: 在单任务活动的onCreate()中添加旧内容的意图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM