锁定屏幕上的活动 - 解除它会恢复以前的活动

时间:2013-01-24 21:48:05

标签: android android-activity lockscreen keyguard

说我的应用程序正常运行,显示活动A.然后用户锁定手机。尽职尽责地去睡觉(onPause())。在屏幕关闭的某个时刻,我需要向用户展示一些东西。所以从我的后台代码(服务),我为B调用startActivity,传递以下标志:

FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_NEW_TASK

在B的onCreate()中,我添加了以下窗口标志

FLAG_SHOW_WHEN_LOCKED 
FLAG_TURN_SCREEN_ON 
FLAG_DISMISS_KEYGUARD 

一切正常 - B现在出现在键盘上方。

稍后,我希望解雇B,所以从B中我打电话dismiss(),按预期工作。而这里出了问题: 我没有返回锁屏,而是在锁定屏幕上运行A.

当我解雇B时,如何阻止操作系统恢复A?

感谢。

1 个答案:

答案 0 :(得分:0)

如果我猜对了Android只是显示属于你的应用的活动堆栈上的下一个活动。我会尝试拨打其他应用,例如活动B退出时的主屏幕,以便锁屏跳跃到前面。

您也可以尝试使用标记FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS

  

如果设置,则新活动不会保留在最近启动的活动列表中。