我使用Intent
(ACTION_SEND
以及Facebook Open Graph链接作为文本)来启动Facebook应用并允许用户启动Facebook状态更新。
这种方法很好,除了在一个单独的情况下:如果用户的会话在Facebook应用程序中过期,Facebook应用程序要求他们再次登录,然后忘记它是在我的中流应用程序。它只是将用户放入主Facebook主页,"堆叠在顶部"我的应用程序,如果你明白我的意思。
此时,我的用户无法对我的应用做任何事情。后退按钮不会返回我的活动;它只能回到Facebook应用程序的主页。如果他们离开我的应用程序并返回它,他们就会重新回到Facebook的主页。唯一的出路似乎是强制退出并重启我的应用程序,此时一切都恢复正常。
我能做些什么来劫持"劫持"我的应用程序的Facebook?显然我根本不希望它发生,但至少能够检测到我的应用程序重新打开并回到我自己的某个活动时发生的事情会很好...
(是的,我知道我可以在我的应用程序中使用Facebook SDK,但它很复杂,烦人且充满问题,而且我尝试这种替代方案的原因是因为当我使用它时,我的用户告诉我他们的状态更新无论如何都没有出现,尽管它总是在我的测试中工作......)
答案 0 :(得分:1)
如果他们从Facebook主屏幕按BACK,则没有任何反应。他们留在Facebook
然后你的问题是Facebook是邪恶的。完全阻止BACK是用户敌对的。阻止来自任务根以外的活动的BACK是用户敌对的和开发者 - 敌对的。
我可以通过Facebook对我的应用程序进行“劫持”吗?
在单独的任务中启动它,使用您用于将控制权传递给Facebook的FLAG_ACTIVITY_NEW_TASK
上的Intent
。它的后栈将与你的后台分离,用户应该能够通过概览屏幕返回你的应用程序。
缺点是用户已通过概览屏幕返回您的应用程序(或再次点击您的启动器图标或类似方法)。对于现在正常工作的情况,这将是偶数,因为按下BACK将最终将用户置于主屏幕,而不是您的应用程序。