我有 MainActivity,并在其 onResume 方法上调用模式锁定来创建和确认用户身份。当应用 Activity 时以及当手机处于 sleep 模式且用户解锁时,用户会来回访问并离开此 MainActivity。这两个场景都会调用 onRestart、onStart 和 onResume 方法,但我只想撤销解锁场景中的模式。
handlePattern()方法需要正确区分才能调用。
调用handlePattern方法时如何区分?
MainActivity.class
onCreate(){}
onResume(){
//help needed to know that user is just visiting activity in app back and forth
or came back after unlocking the screen.
if(isPatternCallRequired){
handlePattern()
}
}
最佳答案
在 onStop() 方法调用中,您可以检查播放器是否处于 sleep 模式并缓存 boolean 值。
PowerManager pm = (PowerManager)
_context.getSystemService(Context.POWER_SERVICE);
boolean isInSleepMode = !pm.isScreenOn();
检查构建版本
if( Build.VERSION.SDK_INT >= 20)
// use isInteractive()
else
// use isScreenOn()
在 onRestart 中,当您从 sleep 状态恢复时,它将被调用 - 根据缓存的值,您可以显示要解锁的模式。
使用完缓存值后,您可能需要重置它。
onResume 可能不是适合该调用的 API,因为即使您的 Activity 加载,它也会被调用。
根据您的评论编辑答案
关于java - 解锁手机时显示应用程序锁定图案对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45616675/