1

我正在尝试开发一个自定义的“锁屏”。

我面临的主要问题是用户实际上总是可以通过按下 HOME 按钮退出我的“锁定屏幕”活动。

我知道不可能阻止或覆盖 HOME。我想知道当用户按下 HOME 时是否有办法重新启动同一个 Activity。

我试图从 重新启动活动onPause(),实际上活动重新启动,但需要几秒钟才能重新启动,因此“锁定屏幕”毫无意义。

有什么方法可以在按下 Home 后立即重新启动 Activity?

4

1 回答 1

3

我曾经遇到过同样的问题,我创建了一个Service在后台运行的。它有一个TimerTask每秒运行一次的循环,并检查我LockScreenActivity的是否在前台。你可以这样做:

List<ActivityManager.RunningTaskInfo> runningTasks = activityManager.getRunningTasks(4096); 
    return runningTasks.get(0).topActivity.getClassName();

如果我的锁屏不在前台,我将其启动/再次带到前台(在清单中将其设为 singleTop)。

TronicZomB 的答案看起来更复杂。

于 2013-05-24T14:27:22.847 回答