3

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

4

3 回答 3

1

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

于 2017-02-06T17:04:40.420 回答
0

您可以setResult(TIMEOUT)在完成活动之前检查结果onActivityResult

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

于 2017-02-06T08:25:59.600 回答
0

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

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

Activity.finishActivity(REQUEST_CODE)

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

于 2021-12-21T15:02:54.223 回答