【发布时间】:2013-01-24 21:48:05
【问题描述】:
假设我的应用程序运行正常,显示 Activity A。然后用户锁定手机。 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?
谢谢。
【问题讨论】:
-
我有一个类似的问题几个月没有解决,终于想弄清楚了。 B 显示正常,但是一旦我关闭它,一旦我解锁锁定屏幕,A 就会弹出。我确实用一些静态变量解决了这个问题,但这并不理想。
-
在搞砸了一点之后,我在启动我的活动时使用了
Intent.ACTIVITY_MULTIPLE_TASK,因为我在锁定屏幕上显示的活动是独立的 - 它只需要一些共享的偏好,但不依赖于其他活动。 -
嗯..在我的情况下这行不通。在最近的应用程序列表中,我的应用程序显示在屏幕 B 上(或者有时没有最近的应用程序).. 如果我的应用程序在锁定手机之前运行(无论是在后台还是前台),我会喜欢它保持在锁定之前的状态(所以运行......无论是在后台还是前台)
-
我实际上遇到了一个相反的问题 - 我希望 activtiy A 仍然会关闭锁屏。我认为这是默认行为。也许您没有提到与锁定屏幕相关的其他内容?你对活动 A 做过什么吗?
-
我没有对 A 做任何事情 - 当用户锁定手机时(或者当 A 处于活动状态(在屏幕上)时,当用户按下主页键或返回按钮时),A 将暂停。
标签: android android-activity lockscreen keyguard