1

カスタムの「ロック画面」を開発しようとしています。

私が直面している主な問題は、ホームボタンを押すだけで、ユーザーが実際に「ロック画面」アクティビティをいつでも終了できることです。

HOME をブロックまたはオーバーライドできないことはわかっています。ユーザーが HOME を押したときに同じアクティビティを再開する方法があるかどうか疑問に思っていました。

からアクティビティを再起動しようとしましたがonPause()、実際にはアクティビティが再起動しますが、再起動に数秒かかるため、「ロック画面」は無意味です。

ホームを押した直後にアクティビティを再開する方法はありますか?

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 に答える