[英]Launch activity from service and stop previous activities after pressing Home Button
我的其中一项活动是通过Intent从服务启动的。FLAG_ACTIVITY_NEW_TASK。 当我按下“后退”按钮并启动此Activity
它将打开,当我按下“后退”按钮时,我会看到常规的Android主页。 但是,如果我按“主页”按钮,然后从“ Service
启动我的“ Activity
,然后按“返回”,则可以从我的应用程序中看到上一个活动。 但我想看看普通的Android主页。
有人可以帮我吗?
如果我对您的理解正确,则需要该Activity
的一个实例。 我的看法有两种选择:
launchMode
设置为singleInstance
。 singleInstance
(我为您提供的链接并没有详细说明原因,但这是另一回事)。 或者,如果您有多个活动,那么使用此启动模式进行活动可能不合适。 当您在堆栈上有活动或没有活动时,您需要处理这种情况。 从服务中,您可以发送有序广播 ,如果活动处于堆栈中,则该活动可以处理并中止(在您的活动#onCreate()和#onDestroy()中,您将要注册,或者分别取消注册该接收器。请记住要按序排列) )。 更多有关订购广播接收机的信息 。 因此,如果活动在堆栈中,您将收到该意图并放弃广播。 如果活动不在堆栈中,则另一个优先级较低的广播接收器将收到该意图-在这种情况下,就是您的服务。 因此,再次:onCreate和onDestroy-注册resp。 注销广播接收器。 在其onReceive()
方法中,您将处理现在正在执行的操作-使用FLAG_ACTIVITY_NEW_TASK
打开“活动”。 希望有道理。 在以下帮助下成功做到了:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.