我有一个在后台运行的应用程序,并在手机上发生某个事件时启动一个活动。我在 Android 5.0 中发现,当用户使用另一个应用程序打开屏幕固定时,startActivity(intent) 调用将被完全忽略。我的应用程序不知道活动没有开始,因此用户在手动重新打开我的应用程序之前将没有机会再次看到活动。
是否有任何类型的事件我可以注册以在屏幕固定关闭时收到通知,以便我可以重新尝试开始我的活动?
我有一个在后台运行的应用程序,并在手机上发生某个事件时启动一个活动。我在 Android 5.0 中发现,当用户使用另一个应用程序打开屏幕固定时,startActivity(intent) 调用将被完全忽略。我的应用程序不知道活动没有开始,因此用户在手动重新打开我的应用程序之前将没有机会再次看到活动。
是否有任何类型的事件我可以注册以在屏幕固定关闭时收到通知,以便我可以重新尝试开始我的活动?
这是 ActivityManager 类中的方法,它在屏幕固定的情况下告诉当前任务的状态是否被锁定:
!mActivityManager.isInLockTaskMode()
有关更多详细信息,请查看此链接:http: //developer.android.com/reference/android/app/ActivityManager.html#isInLockTaskMode%28%29
您的应用必须是设备管理员(具有用户授予的管理权限)。完成后,您可以实现此回调:
AdminReceiver.onLockTaskModeExiting(Context context, Intent intent)
在固定模式停止时做某事。
要查看如何使您的应用程序成为管理员应用程序:您可以在此处查看我以前的答案之一