gpt4 book ai didi

android - 在 Twitter OAuth 完成后返回 Activity

转载 作者:太空宇宙 更新时间:2023-11-03 12:01:34 25 4
gpt4 key购买 nike

我使用 list 中的 intent-filter 在我的应用程序中使用 Twitter OAuth。我是如何实现它的,一旦用户点击一个按钮通过 Twitter 发帖,我就会启动一个新的 Activity(我们称之为 TwitterLoginActivity),新的 TwitterLoginActivity 创建一个带有 authUrl 的新 Intent,如下所示:

Intent oauthIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl));

这将打开一个浏览器,我授权我的应用程序,它在 TwitterLoginActivity 的 onResume() 函数中返回。在这一点上,我可以很好地发布到 Twitter 并对此 Activity 执行 finish()。

所有这一切都像冠军一样工作,但在调用此 finish() 时,它返回到我刚刚授权的 Twitter.com 网页。我不太了解 Activity 堆栈的工作原理,但无论如何都可以删除我看到的 Twitter.com 的所有 WebView,并且在 finish() 上它只是返回到我的应用程序中用户所在的原始点点击了发布按钮?

最佳答案

我不知道你是否解决了你的问题,但昨天我遇到了同样的问题,我是这样解决的:

1) 为了启动 WebBrowser 以登录 Twitter,添加以下标志:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl));
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.addFlags(Intent.FLAG_FROM_BACKGROUND);
startActivity(intent);

2) 在声明启动 Intent 的 TwitterLoginActivity 的 list 中,添加属性:

android:launchMode="singleTask"

3) 完成 Twitter 登录后,WebBrowser 完成并返回到 TwitterLoginActivity,但由于 singleTask 启动模式,onCreate 未被调用,而是调用了 onNewIntent。要保存 token 和 token secret ,您必须将代码从 onResume 移动到 OnNewIntent。

现在,如果您按下后退按钮或完成 TwitterLoginActivity,它会转到上一个 Activity 并且 WebBrowser 再也不会出现。

希望对您有所帮助!

关于android - 在 Twitter OAuth 完成后返回 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5427266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com