【问题标题】:Finish activity that is waiting for result完成等待结果的活动
【发布时间】:2017-04-05 01:42:19
【问题描述】:

我正在开发登录系统,目前流程如下:

LoginActivity 可以调用 ExecuteLoginActivity 显示一个带有进度条的屏幕,同时它通过 AsyncTask 连接到后端以验证用户并将结果返回给 LoginActivity,然后它可以调用 MainActivity,或者 LoginActivity 可以调用 SignUpActivity然后可以调用与 ExecuteLoginActivity 相同但用于注册的 ExecuteSignUpActivity,然后将结果返回给 SignUpActivity,然后将结果返回给 LoginActivity,然后再调用 MainActivity。

这种方法的问题在于,LoginScreen(有时是 SignUpActivity)在调用 MainActivity 之前最终会“闪烁”给用户。我希望 Execute 活动在成功登录/注册后自行调用 MainActivity,并返回登录/注册活动以在尝试失败时显示错误。

我坚持使用广播发送信号以在成功登录时完成登录/注册活动,但我不知道我是否可以在他们等待产生的执行活动结果时完成它们。所以我的问题是,我可以完成一个正在等待另一个活动结果的活动吗?

【问题讨论】:

    标签: android android-activity


    【解决方案1】:

    在注册和登录活动中这样做:

        Intent i = new Intent(this,MainActivity.class);
        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(i);
        finish();
    

    【讨论】:

    • 这看起来很不错,但是你知道是不是因为等待结果的活动有问题吗?操作系统是否没有为等待结果的活动提供参考?
    【解决方案2】:

    我的理论问题没有直接回答,但我在question的答案中找到了解决实际问题的方法。

    基本上,我所做的是调用 startActivity() 直接启动 MainActivity,然后返回成功并在各自的 OnActivityResult() 方法上完成所有其他活动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-13
      • 1970-01-01
      相关资源
      最近更新 更多