diff --git a/src/com/android/settings/biometrics/face/FaceSettings.java b/src/com/android/settings/biometrics/face/FaceSettings.java
index 48370d9..05e3778 100644
--- a/src/com/android/settings/biometrics/face/FaceSettings.java
+++ b/src/com/android/settings/biometrics/face/FaceSettings.java
@@ -145,7 +145,11 @@
         if (savedInstanceState != null) {
             mToken = savedInstanceState.getByteArray(KEY_TOKEN);
         }
+    }
 
+    @Override
+    public void onResume() {
+        super.onResume();
         if (mToken == null) {
             final long challenge = mFaceManager.generateChallenge();
             ChooseLockSettingsHelper helper = new ChooseLockSettingsHelper(getActivity(), this);
@@ -155,13 +159,7 @@
                 Log.e(TAG, "Password not set");
                 finish();
             }
-        }
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        if (mToken != null) {
+        } else {
             mAttentionController.setToken(mToken);
             mEnrollController.setToken(mToken);
         }
@@ -196,13 +194,12 @@
     }
 
     @Override
-    public void onDestroy() {
-        super.onDestroy();
-        if (getActivity().isFinishing()) {
-            final int result = mFaceManager.revokeChallenge();
-            if (result < 0) {
-                Log.w(TAG, "revokeChallenge failed, result: " + result);
-            }
+    public void onStop() {
+        super.onStop();
+        mToken = null;
+        final int result = mFaceManager.revokeChallenge();
+        if (result < 0) {
+            Log.w(TAG, "revokeChallenge failed, result: " + result);
         }
     }
 
