从我的MainActivity
我调用一个可能需要或不需要启动另一个活动的函数(弹出对话框)来返回结果。如果它不需要启动另一个活动,如何在不创建另一个窗口的情况下触发onActivityResult
?
用例是,在执行某些活动之前,用户需要点击“我知道自己在做什么”。"应用程序允许他们执行此操作前至少5分钟按钮。我试图将其提取为函数。
JavaScript中的类比为Promise.resolve
。
答案 0 :(得分:0)
您要遵循的模式是从onActivityResult()中抽象出您的逻辑。在下面的示例中,活动希望确保用户已登录。结果处理逻辑位于handleSignInResult()中。如果用户未登录,则将启动登录活动。如果用户已登录,则立即调用handleSignInResult()。
private void init() {
if(Foo.isSignedIn()) {
this.handleSignInResult(true);
} else {
// TODO Launch the activity which will later cause onActivityResult() to be invoked
}
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// TODO Check intent data to determine how to call handleSignInResult()
boolean success = true;
this.handleSignInResult(success);
}
private void handleSignInResult(boolean isSignedIn) {
// Do the stuff
}