当您使用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是您之前发送到强调文本的代码