OnActivityResult() 在 onResume() 之前调用。您可以做的是在 OnActivityResult() 中设置一个标志,您可以在 onResume() 中检查该标志,如果标志为真,您可以重新创建活动。
您实际上可以做的是完成活动并开始相同的活动,而不是重新创建它。你会得到同样的效果。它可能是这样的:
public class MainActivity extends AppCompatActivity {
private boolean shouldRecreate = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("AG", "onCreate() called");
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(intent, 0);
}
@Override
protected void onResume() {
super.onResume();
if (shouldRecreate){
finish();
startActivity(new Intent(this, MainActivity.class));
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 0){
shouldRecreate = true;
}
}
}