让 activity A 等待 activity B 完成以继续

Make an activity A wait an activity B finish to continue

我有一个 activity A 具有此功能:

public void onSettingsClick(View view){
        Intent intent = new Intent(this, Settings.class);
        startActivity(intent);

        checkSettings();
}

有没有办法让activityA等待activityB("Settings.class")完成执行函数"checkSettings();"?

谢谢

编辑:我可能误解了你的问题。如果您想在 B 中使用 运行 checkSettings() 函数,那么您需要在 B activity 中定义并调用该函数。

否则,如果你想在运行ning checkSettings()之前等待activityB结束,那么复制下面的代码。

在答:

public void onSettingsClick(View view){
        Intent intent = new Intent(this, Settings.class);
        startActivityForResult(intent, 1);
}

然后也在 A Override onActivityResult 方法中.. B 结束时调用此方法:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        checkSettings();
    }

在你的Activity一个写

public void onSettingsClick(View view){
    Intent intent = new Intent(this, Settings.class);
    startActivityForResult(intent, 100);
}

还有你Activity覆盖Activity结果

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

   if(resultCode==RESULT_OK){

      if(requestCode==100){

        checkSettings();

       }
   }

}

在你的 Activity B

当你想完成那个时activity在那写那段代码

Intent returnIntent = new Intent();
setResult(RESULT_CANCELED, returnIntent);
finish();

由于您要启动单独的 activity,因此执行此操作的另一种方法是 onResume 中的调用检查设置。这样一来,您不必传递任何数据,如果出于其他原因您可能想要刷新或重新检查您的设置,它会在 activity 返回顶部时随时执行此操作。

    override fun onResume() {
        super.onResume()
        checkSettings()
    }