我的一项活动是使用Intent.FLAG_ACTIVITY_NEW_TASK从服务启动的。
当我按下后退按钮并启动此Activity
时,它会打开,当我按下后退按钮时,我会看到常规的Android主页。
但是,如果我按下主页按钮,然后从Activity
启动Service
并按回来,我会从我的应用程序中看到上一个活动。
但是我希望看到常规的Android主页。
有人可以帮我吗?
答案 0 :(得分:1)
如果我理解正确,您需要拥有Activity
的单个实例。我认为你有两种选择:
launchMode
设置为singleInstance
。singleInstance
(我提供给你的链接并没有详细说明原因,但这是一个不同的故事)。或者,如果您有多个活动,那么使用此启动模式进行活动可能不合适。当您在堆栈上进行活动或者没有活动时,您需要处理此案例。从服务中你可以发送你的活动可以处理的ordered broadcast,如果它在堆栈中则中止(在你的活动#onCreate()和#onDestroy()中你将注册,resp取消注册该接收者。记得注册高序数)。有关订购广播接收器的更多信息here。因此,如果活动在堆栈上,您将收到该意图并放弃广播。如果活动不在堆栈上,则另一个优先级较低的广播接收器 将收到该意图 - 在本例中为您的服务。所以,再次:onCreate和onDestroy - 注册resp。取消注册广播接收器。在onReceive()
方法中,您将处理您现在正在执行的操作 - 使用FLAG_ACTIVITY_NEW_TASK
打开活动。希望它有意义。答案 1 :(得分:0)
在以下帮助下成功完成: