让 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()
}
我有一个 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()
}