gpt4 book ai didi

java - Android Intent B 不返回到 Intent A 的下一行?

转载 作者:行者123 更新时间:2023-12-02 04:29:48 26 4
gpt4 key购买 nike

因此,onOptionsItemSelected block 中的主 Activity 有一个设置选项,单击该选项时,会启动设置 Activity 并向其传递一些值。代码如下所示

@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();

//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
Intent intent = new Intent(this, SettingsActivity.class);
intent.putExtra("SettingsObj", settings);
intent.putExtra("UpdateDate", employees[0].updated);
startActivityForResult(intent, 1);
System.out.println("Did we return to the same instance????????????????");
AdjustSettings();
}

return super.onOptionsItemSelected(item);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if (resultCode == RESULT_OK) {
System.out.println("Did we get to this POINT????????");
settings = (Settings) data.getExtras().getSerializable("result");
System.out.println("What is the size of text? " + settings.TextSize);
}
}
}

现在设置 Activity 已成功调用,之后我会传回一个设置对象。传回值的设置 Activity 代码如下所示

@Override
public void onPause() {
returnIntent.putExtra("result", settings);
setResult(RESULT_OK, returnIntent);
finish();

super.onPause();
}

现在,当我退出设置页面时,我的主要 Activity 不会在打印出问题“我们返回了吗?”的下一行处恢复。唯一的打印输出代码是类开头的代码。在 Intent 2 中按手机上的返回箭头是否不会将我带到 Intent 1 中的下一行,或者它是 Intent 1 的新实例?另外,不确定我是否应该在 onPause 或 onStop 中返回我的 Intent 数据:P 哪个更好?谢谢!

最佳答案

通常,您的代码“我们返回了吗...”和AdjustSettings()将在您的第二个 Activity 开始后立即执行(因为startActivityForResult不是阻塞调用,它只是系统启动该 Activity 的请求) Activity x)。因此,您的第一个 Activity 不会等待第二个 Activity 结束来执行这些行。

关于第二个 Activity 的结果,请查看此线程:setResult does not work when BACK button pressed 。在 onPause() 方法上调用 setResult 似乎为时已晚(您的结果将始终为 RESULT_CANCELED),您必须在 onBackPressed() 方法中执行此操作。但是,我不确定您的应用程序工作流程是否正确,后退按钮并非旨在保存设置。您应该看一下首选项系统:http://developer.android.com/guide/topics/ui/settings.html

关于java - Android Intent B 不返回到 Intent A 的下一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31620606/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com