Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 活动之间的合作_Android - Fatal编程技术网

Android 活动之间的合作

Android 活动之间的合作,android,Android,我已将锁屏逻辑插入我的应用程序。它显示ComfirmPatternActivity(在我的MainActivity上方),它控制图形pin码输入是否正确。 当调用MainActivity的onCreate()方法时,一切都正常。但我也希望在关闭应用程序而不破坏主要活动时锁定屏幕。所以它是从onRestart()->onResume()开始的。在onResume()中,我放置了handleLockScreen()方法;如onCreate()中所示。但现在我进入了无限循环,它显示了我多年的活动屏幕。

我已将锁屏逻辑插入我的应用程序。它显示ComfirmPatternActivity(在我的MainActivity上方),它控制图形pin码输入是否正确。 当调用MainActivity的onCreate()方法时,一切都正常。但我也希望在关闭应用程序而不破坏主要活动时锁定屏幕。所以它是从onRestart()->onResume()开始的。在onResume()中,我放置了handleLockScreen()方法;如onCreate()中所示。但现在我进入了无限循环,它显示了我多年的活动屏幕。它指出,在用户输入正确的pin后,ComfirmPatternActivity中的最后一个代码命令是Activity finish()。完成后()我重定向到MainActivity.onResume()-堆栈上的prev Activity-在其中我再次启动ComfirmPatternActivity()等等。我想恢复逻辑只有在用户再次按下应用程序图标的情况下,而不是在顶部活动被破坏的情况下。如何处理?Thx提前

主要活动

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);