Kos*_*din 1 android facebook login
在facebook教程中,我看到了这个示例代码:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
facebook.authorizeCallback(requestCode, resultCode, data);
}
Run Code Online (Sandbox Code Playgroud)
使用此代码我收到:onAuthFail,错误="已取消操作".
删除
super.onActivityResult(requestCode, resultCode, data);
Run Code Online (Sandbox Code Playgroud)
它工作正常.
所以我的问题是:在哪里放置super.onActivityResult(requestCode,resultCode,data)?在facebook回调之前,之后或删除它.在没有调用super.onActivityResult的时刻 - 代码工作正常.可以丢失导致问题吗?
我在清单中使用它:
<activity android:launchMode="singleInstance" android:name=".profile.LoginForm"
Run Code Online (Sandbox Code Playgroud)
android:screenOrientation ="portrait"android:noHistory ="true">
这会产生问题吗?
将"singleInstance"放入清单的原因是:避免重新启动我的登录表单.这个问题迫使当前出现问题.
小智 5
关于你的更新:
android:launchMode="singleInstance"
Run Code Online (Sandbox Code Playgroud)
确实会导致问题startActivityForResult()和onActivityResult().请参阅launchMode文档:
另一方面,"singleInstance"活动不允许其他活动成为其任务的一部分.这是任务中唯一的活动.如果它启动另一个活动,则该活动将分配给另一个任务.
这意味着启动的facebook auth活动不是您当前任务的一部分,因此无法提供任何结果.如果您对此进行调试,您应该注意到onActivityResult()在子活动开始后立即调用(这对于获得正确/有用的结果来说为时尚早).
我会说你的launchMode更改为不同的东西(也没有singleTask,它有相同的问题).
我不确定超类方法如何影响这个,因为你声称这个修复了它.理论上这应该永远不会有效singleInstance.
| 归档时间: |
|
| 查看次数: |
990 次 |
| 最近记录: |