Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.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 在onBackPressed中调用.finish()的执行方式与在其他位置调用不同_Android_Kotlin - Fatal编程技术网

Android 在onBackPressed中调用.finish()的执行方式与在其他位置调用不同

Android 在onBackPressed中调用.finish()的执行方式与在其他位置调用不同,android,kotlin,Android,Kotlin,我在下面展示了几乎相同的代码片段 在代码的不相关部分: thread { val result = Intent() this@Activity2.setResult(RESPONSE_SUCCESS_CODE, result) this@Activity2.finish() } 在onBackPressed方法中: thread { val result = Intent() thi

我在下面展示了几乎相同的代码片段

在代码的不相关部分:

    thread {
         val result = Intent()
         this@Activity2.setResult(RESPONSE_SUCCESS_CODE, result)
         this@Activity2.finish()
    }
在onBackPressed方法中:

    thread {
        val result = Intent()
        this@Activity2.setResult(RESPONSE_CANCEL_CODE, result)
        this@Activity2.finish()
    }
除了将不同的结果代码传递给调用活动之外,我希望这些代码以相同的方式运行。除了第一段代码正确地将我们带回调用活动,而第二段代码将我们带回一个完全关闭的无关活动

因此,预期的工作流是main->act1->back to main->act2->back to main

如果我不重写onBackPressed函数,或者如果我调用了onBackPressed函数之外的代码段,我将得到预期的工作流。此外,如果我在act2中通过android studio运行布局检查器,它不会正确显示act1的任何实例,因为它已完全关闭

但是如果我在onBackPressed函数中调用这段代码,我会得到以下工作流:main->act1->backtomain->act2->act1


老实说,我不知道为什么会发生这种情况。

你能补充一下你的
act2
的更多细节吗?除此之外,您的日志猫中是否存在任何错误?在方案:-FirstActivity-SecondActivity FirstActivity startForResult()SecondActivity中。您在FirstActivity.onActivityResult()中有哪些内容?响应\取消\代码和响应\成功\代码是公共常量吗?在所有活动中使用相同的常数?另请参见,@Md.Asaduzzaman act2是带有特定探测器的相机活动。除了状态代码之外,它不会在返回的意图中放入任何其他内容。当检测器检测到它正在寻找的东西时,它会调用最上面的代码。如果用户按下“后退”按钮,它将调用底部部件。这是活动结束的唯一两种预期方式。在logcat中似乎没有任何相关的错误。@greeble31我不知道为什么我继承了这段代码,所以在线程中有它。但是将它移出线程{}不会改变行为。您可以添加
act2
的更多详细信息吗?除此之外,您的日志猫中是否存在任何错误?在方案:-FirstActivity-SecondActivity FirstActivity startForResult()SecondActivity中。您在FirstActivity.onActivityResult()中有哪些内容?响应\取消\代码和响应\成功\代码是公共常量吗?在所有活动中使用相同的常数?另请参见,@Md.Asaduzzaman act2是带有特定探测器的相机活动。除了状态代码之外,它不会在返回的意图中放入任何其他内容。当检测器检测到它正在寻找的东西时,它会调用最上面的代码。如果用户按下“后退”按钮,它将调用底部部件。这是活动结束的唯一两种预期方式。在logcat中似乎没有任何相关的错误。@greeble31我不知道为什么我继承了这段代码,所以在线程中有它。但是将其移出线程{}不会改变行为。