startActivityForResult() 没有暂停前一个 Activity

startActivityForResult() is not pausing previous Activity

我有活动 A、B 和 C。A 开始 B 和 C,一个接一个。问题是 B 打开,然后 C 开始并覆盖 B。我希望 A 等到 B 完成并返回,但那没有发生。 C 在启动 B 之后立即启动,因此用户永远不会看到 B。

我正在按照其他帖子中的建议使用 startActivityForResult(),但这没有帮助。

这是Activity中的代码 A:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
if (! pm.isIgnoringBatteryOptimizations(getApplicationContext().getPackageName())) {
    startActivityForResult(new Intent(android.provider.Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS), 1);
}

...

startActivity(new Intent(InitActivity.this, MyAwesomeActivity.class));

您必须使用 startActivityForResult。您基本上必须执行以下三个步骤:

  1. startActivityForResult(intent_A_to_B, 101);//here 101 is any request code
  2. 无论你在 Activity B 中调用 finish(),调用 setResult(RESULT_OK)
  3. Activity A 中覆盖 onActivityResult

    @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 101) {//this is the request code if (resultCode == RESULT_OK) { startActivity(intent_A_to_C); } }

您必须使用 onActivityResult() 链接活动。

A 调用 B,然后在 onActivityResult() 中使用 resultCode 参数验证 B 是否返回。一旦确认你在 B 的回调中,然后你调用 C。所以它更像是 A 启动 B,然后 B 启动 C。