繁体   English   中英

使活动 A 等待活动 B 完成才能继续

[英]Make an activity A wait an activity B finish to continue

我有一个具有此功能的活动 A:

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

        checkSettings();
}

有没有办法让活动A等待活动B(“Settings.class”)完成执行功能“checkSettings();” ?

谢谢

编辑:我可能误解了你的问题。 如果要在 B 中运行 checkSettings() 函数,则需要在 B 活动中定义并调用该函数。

否则,如果您想在运行 checkSettings() 之前等待活动 B 结束,请复制以下代码。

在一个:

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();
    }

在你的活动 A 中写

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

还有你的 Activity A 覆盖 onActivityResult

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

   if(resultCode==RESULT_OK){

      if(requestCode==100){

        checkSettings();

       }
   }

}

并在您的活动 B

当你想完成那个活动时,在那里写一段代码

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM