gpt4 book ai didi

java - StartActivityForResult 不暂停主 Activity

转载 作者:行者123 更新时间:2023-11-29 18:35:14 28 4
gpt4 key购买 nike

我创建了一个对话框作为 Activity ,用户在其中选中三个单选按钮之一,结果返回到主 Activity 。我关注了answer on this SO question

我认为通过创建这个 MainAcitvity 会暂停并等待子 Activity 的结果。

private void getFinalFinish() {

Intent intent_openDialog = new Intent(this, DaAAmountToFinish.class);
// Start the SecondActivity
Bundle bundle_PassToDialog = new Bundle();

bundle_PassToDialog.putInt("EXTRA_SCORE_TO_SUBTRACT", scoreToSubtractFrom);
bundle_PassToDialog.putString("EXTRA_RADIO_BUTTON", rb_selected.getText().toString());
bundle_PassToDialog.putString("EXTRA_THROWING", whosThrowing);
intent_openDialog.putExtras(bundle_PassToDialog);
startActivityForResult(intent_openDialog, DIALOG_REQUEST_CODE);


}

此代码在需要时执行,我可以看到它,因为它会在我点击后退按钮时显示(我的主要 Activity 继续到它打开另一个我只想在从 Activity 中获得结果后打开的 Activity 作为对话)。

关于 Activity 结果代码...

 // This method is called when the dialog activity finishes
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

// Check that it is the SecondActivity with an OK result
if (requestCode == DIALOG_REQUEST_CODE) {
if (resultCode == RESULT_OK) {


Bundle extras = data.getExtras();
// Get String data from Intent
int darts_to_minus = extras.getInt("DARTS_TO_MINUS");
boolean addTooScore = extras.getBoolean("ADD_TO_SCORE");
int dartsToSubtractFromFinish = extras.getInt("DARTS_TO_SUBTRACT_FROM_FINISH");

setMatchAVG(darts_to_minus, whosThrowing, addTooScore);


if (newBestLeg) {

if (whosThrowing.equalsIgnoreCase("Player 1")) {
tv_bestLeg.setText(getString(R.string.tv_BestLeg, String.valueOf(tempNumOfDartsThrownP1 + dartsToSubtractFromFinish))); //Subtract 2 off best leg only took 1 dart to finish
} else {
tv_bestLegP2.setText(getString(R.string.tv_BestLeg, String.valueOf(tempNumOfDartsThrownP2 + dartsToSubtractFromFinish)));
}
}
}
}
}

这是为什么?

最佳答案

My main activity continues to the point where it opens another activity that I only want to open after I get the result from activity as a dialog

这是“按预期工作”:

  • 一旦一个方法开始,它将继续直到它完成(如果它不会花费太长时间而导致 ANR)。

  • 执行 Activity 方法的默认线程是主线程。具体来说,如果另一个 Activity 启动,它的方法也会在主线程上执行。

  • 因此,新 Activity 中的第一个方法只能在启动新 Activity 的方法完成后执行。

  • 因此,您应该将所有必须等待新 Activity 结果的部分移动到应用的另一部分。您覆盖 onActivityResult() 并根据结果触发这些部分的执行。

关于java - StartActivityForResult 不暂停主 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54675296/

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