![](/img/trans.png)
[英]android: makes activity A wait for activity B to finish and returns some values
[英]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.