我正在尝试开发一个自定义的“锁定屏幕”。
我面临的主要问题是用户实际上只需按下HOME按钮即可退出“锁定屏幕”活动。
我知道无法阻止或覆盖HOME。我想知道当用户按下HOME时是否有办法重新启动相同的Activity。
我曾尝试从onPause()
重新启动活动,事实上Activity重启,但重启需要几秒钟,因此“锁定屏幕”毫无意义。
有没有办法在按下Home后立即重新启动Activity ?
答案 0 :(得分:3)
我遇到了同样的问题,我创建了一个在后台运行的Service
。它有一个TimerTask
循环,每秒运行一次并检查我的LockScreenActivity
是否在前景中。
你可以这样做:
List<ActivityManager.RunningTaskInfo> runningTasks = activityManager.getRunningTasks(4096);
return runningTasks.get(0).topActivity.getClassName();
如果我的锁屏不在前台,我将其启动/再次将其带到前台(在Manifest中将其设为singleTop)。
TronicZomB的答案看起来更复杂。