Android 活动之间的合作
我已将锁屏逻辑插入我的应用程序。它显示ComfirmPatternActivity(在我的MainActivity上方),它控制图形pin码输入是否正确。 当调用MainActivity的onCreate()方法时,一切都正常。但我也希望在关闭应用程序而不破坏主要活动时锁定屏幕。所以它是从onRestart()->onResume()开始的。在onResume()中,我放置了handleLockScreen()方法;如onCreate()中所示。但现在我进入了无限循环,它显示了我多年的活动屏幕。它指出,在用户输入正确的pin后,ComfirmPatternActivity中的最后一个代码命令是Activity finish()。完成后()我重定向到MainActivity.onResume()-堆栈上的prev Activity-在其中我再次启动ComfirmPatternActivity()等等。我想恢复逻辑只有在用户再次按下应用程序图标的情况下,而不是在顶部活动被破坏的情况下。如何处理?Thx提前 主要活动Android 活动之间的合作,android,Android,我已将锁屏逻辑插入我的应用程序。它显示ComfirmPatternActivity(在我的MainActivity上方),它控制图形pin码输入是否正确。 当调用MainActivity的onCreate()方法时,一切都正常。但我也希望在关闭应用程序而不破坏主要活动时锁定屏幕。所以它是从onRestart()->onResume()开始的。在onResume()中,我放置了handleLockScreen()方法;如onCreate()中所示。但现在我进入了无限循环,它显示了我多年的活动屏幕。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
handleLockScreen();
setContentView(R.layout.activity_main);
}
protected void onResume() {
super.onResume();
handleLockScreen();
公共无效handleLockScreen(){
公共类SampleConfirmPatternActivity扩展了ConfirmPatternActivity{
SharedPreferences prefs = this.getSharedPreferences("LOCK_SCREEN",
Context.MODE_PRIVATE);
String patternSha1 = prefs.getString("LOCK_SCREEN_CODE","");
return TextUtils.equals(PatternUtils.patternToSha1String(pattern), patternSha1);
…finish()在本活动中被进一步调用
}
这个finish()返回到我的onResume(),它会再次触发。我只想在我的应用程序发生外部事件时处理onResume(),例如用户返回到我的应用程序等。我不想在检查pin码并且一切正常时返回onResume()。您可以声明一个布尔值(全局到应用程序)在锁屏活动中修复此问题,并告知(主活动)是从外部还是从锁屏(y)恢复
SharedPreferences prefs = this.getSharedPreferences("LOCK_SCREEN",
Context.MODE_PRIVATE);
String patternSha1 = prefs.getString("LOCK_SCREEN_CODE","");
return TextUtils.equals(PatternUtils.patternToSha1String(pattern), patternSha1);