立即解决一项活动

时间:2017-12-05 05:06:03

标签: java android android-activity

从我的MainActivity我调用一个可能需要或不需要启动另一个活动的函数(弹出对话框)来返回结果。如果它不需要启动另一个活动,如何在不创建另一个窗口的情况下触发onActivityResult

用例是,在执行某些活动之前,用户需要点击“我知道自己在做什么”。"应用程序允许他们执行此操作前至少5分钟按钮。我试图将其提取为函数。

JavaScript中的类比为Promise.resolve

1 个答案:

答案 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
}