如何取消从 startActivityForResult 调用的意向



当您使用startActivityForResult函数调用/启动活动时(就我而言,它是使用 Facebook 登录LoginManager.getInstance().logInWithReadPermissions(this, PERMISSIONS);有什么方法可以取消意图,因此父活动onActivityResult不会被调用。我想向父活动添加超时机制,以防止子活动等待时间过长。(当Facebook被阻止/减速时,需要几分钟才能调用onActivityResult,所以我想通知用户可能超时的情况(

不,您无法取消它。但是,您可以跟踪不再等待onActivityResult()回调的事实,以便在调用该方法时,您记住您不在乎并忽略它。

您可以在

完成活动之前setResult(TIMEOUT)并在onActivityResult中检查结果。

此外,最佳做法是在子活动中设置超时机制(您可以在意图中传递一些信息(。

我知道

它有点旧,但我只是面临着同样的问题,即由startActivityForResult(Intent,REQUEST_CODE(启动的活动来自第三方,这意味着我无法手动完成它或在完成之前设置结果。

但幸运的是,android 为此提供了一种活动方法,只需从启动第 3 方的父活动调用它即可。

Activity.finishActivity(REQUEST_CODE)

REQUEST_CODE是您之前发送到强调文本的代码

相关内容

  • 没有找到相关文章

最新更新