2

KeyGuardManager と KeyguardLock を使用して電話のロックを解除しようとしていますが、最初の数回しか機能せず、アプリケーションを強制終了すると次のようになります。

WindowManagerService.mKeyguardTokenWatcher: cleaning up leaked reference

この問題はおそらくKeyGuardManager の問題に関連していますが、記載されているexitKeyguardSafely()Android KeyguardManager API リファレンスに見つかりません。exitKeyguardSafely()の代わりに、exitKeyguardSecurely()を使用してみましたが、役に立ちませんでした。

助けてください!

private final String LOG_TAG = getClass().getSimpleName();

private void unlock() {
   KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE);
   KeyguardLock lock = keyguardManager.newKeyguardLock(LOG_TAG);  
   lock.disableKeyguard();
   keyguardManager.exitKeyguardSecurely(null);
}
4

1 に答える 1

2

KeygardLock はセマフォのようです。reenableKeyguard() をdisableKeyguard()同じ回数呼び出すようにしてください。リソース リークの警告はありません。

于 2011-04-09T18:16:37.300 に答える